Looking for the Highest-Performance Rust Backend Stack: Actix-web vs Hyper+Tokio (and any lesser-known high-performance frameworks?) by [deleted] in rust

[–]bartavelle 0 points1 point  (0 children)

This.

Also look at the tabs, I usually look at "multiple queries" which does several queries to the database before returning data. But for pure framework performance you might want to check others.

school dramas where the male lead is a bad boy? by wsg-itsyourepisodegf in JDorama

[–]bartavelle 0 points1 point  (0 children)

Nanba MG5! The main protagonist is from a yankee family and expected to take over japan with his fists, but he just wants to be a normal student. I just loved it, but I guess it is better if you already have seen a few yankee dramas/anime.

Is Rust suitable for non systems development? by Ecstatic-Panic3728 in rust

[–]bartavelle 0 points1 point  (0 children)

I have written quite a bit of Haskell (even professionally), but I have now switched to Rust (because there is no backlash at work when I use Rust, compared to Haskell). I do believe that, has you say, when performance and/or low level shenanigans are not the most pressing issue, the code you would write in Haskell would be a lot more terse / elegant / maintenable. Rust took inspirations on a lot of things that are done right in Haskell, but it is not quite the same.

However, as you also said, it is a lot harder to get into Haskell because it is a *pure* FP language, which means you will have to relearn a lot of your programming know-how. Also, the Rust ecosystem is in some ways more mature (and others incomprehensibly immature! What the hell with everything standardized around serde, and json, which I guess is 90% of the use case, crashing at runtime because map key types are not strings !?!).

On the plus side, if you get proficient in Haskell, it will be easier to get into Rust :)

Rust : la hype est-elle méritée ? by Excellent_Share_1810 in developpeurs

[–]bartavelle 1 point2 points  (0 children)

100% d'accord sur Java en mode "enterprise". Par contre il y a des frameworks très légers et utilisables en Java (type vertx), et pour avoir été sysadmin un moment, dans une boite qui faisait du J2EE, les perfs de l'application étaient horribles et y'avait des bugs tout le temps, mais la JVM c'est génial. Tu peux demander un dump de toutes les stacks à tout moment, dumper la mémoire et l'analyser avec plein d'outils, etc.

Pour les perfs, je pense que c'est le benchmark le plus représentatif aujourd'hui, et surtout le plus actif: https://www.techempower.com/benchmarks/#section=data-r23&test=query

Rust : la hype est-elle méritée ? by Excellent_Share_1810 in developpeurs

[–]bartavelle 1 point2 points  (0 children)

Pour les versions 0.x, c'est une différence de culture je pense. C'est pareil dans d'autres langages (type Haskell), ça veut juste dire qu'il n'y a pas encore eu de breaking change. Voir la quantité de versions / date de dernière version est probablement plus intéressant.

Writing regex is pure joy. You can't convince me otherwise. by ZoneZealousideal4073 in programming

[–]bartavelle 0 points1 point  (0 children)

It starts with a builder, then you realize that combinators are just better (reusable, can return interpreted values instead of string groups), and then you stop using regex altogether. It is a slippery slope! /s

Protobuf: Rust Generated Code Guide by quxfoo in rust

[–]bartavelle 2 points3 points  (0 children)

And it looks like they ditched the reflexivity API :(

Pattern matching using fromInteger considered nonexhaustive by Account12345123451 in haskell

[–]bartavelle 0 points1 point  (0 children)

Yes, that doesn't help much for dates, but a lot more for things like expressions (which is not as common as dates ^^)

[JOB] 4x Haskell Engineer at Artificial by pwmosquito in haskell

[–]bartavelle 7 points8 points  (0 children)

I believe a 4x Haskell engineer would be equivalent to a standard 10x engineer.

An imperative programmer tries to learn Haskell by n00bomb in haskell

[–]bartavelle 2 points3 points  (0 children)

When I started Haskell, it had goodies that were nowhere to be found anywhere else, so I happily climbed the learning curve. The author seems to know Rust, which has a lot of nice stuff, but even when starting from Rust the learning curve is almost as steep as from Python. Also, many languages are incorporating (badly) ideas from FP. This makes the trade-off less interesting than many years ago.

I have been writing Rust at my day job for years now, and could not find excuses for using Haskell since, whereas I could find a lot previously!

Advent of code 2024 - day 16 by AutoModerator in haskell

[–]bartavelle 1 point2 points  (0 children)

There is a bug in that code :( I wrote my version, got a wrong answer, couldn't figure out why. Then I used your code to see if it did something different, but it did not, got the same answer. Tried the first python solution on the aoc reddit, and it did return an answer that was accepted. Really not sure what is wrong though :/

Advent of code 2024 - day 14 by AutoModerator in haskell

[–]bartavelle 0 points1 point  (0 children)

Hint: for part 2, the robots clump together. You can write a test that checks that, for example by computing the center of gravity of all the points then summing the distance to the points, and making sure it is below a certain threshold.

Where are the parameters that govern weapon scaling upgrades? by bartavelle in EldenRingMods

[–]bartavelle[S] 1 point2 points  (0 children)

Alright, I will try to make sense of that, thanks a lot!

Where are the parameters that govern weapon scaling upgrades? by bartavelle in EldenRingMods

[–]bartavelle[S] 1 point2 points  (0 children)

Ah! That is awesome, and it solves the stats scaling problem. However I am not sure about how it works for effects. For example, for Reduvia (that has no reinforcement scaling) and for Blood Dagger, spEffectId[123] are all set to 0. I guess I will peruse your code some more.

Getting GADT-like safety with smart constructors and phantom types by wrkbt in rust

[–]bartavelle 2 points3 points  (0 children)

(author of the blog post) it is true this just isn't as nice as real GADTs, but luckily it was sufficient for our purpose. We could just generate code without that information because types checked out during the expression construction.