Hacker News new | ask | show | jobs
by matt2000 2751 days ago
Is anyone able to lay out some of the reasons why you might want to write web applications in rust? I was under the impression rust was designed as a safer language for low level systems programming. Thanks!
5 comments

I'd say that in all the talk of Rust being a C replacement, what gets lost is that it is also a very expressive, modern, functionally flavored language, perfectly suitable for higher-level programming.

If you want type safety, speed, expressive language & native binaries, Rust is a good choice.

Sure, however you do pay the significant cost of having to satisfy the borrow checker. There are other nice expressive languages where you don't have to do that so if you actually don't need the speed Rust is maybe not the best choice.
> you do pay the significant cost of having to satisfy the borrow checker

Right, but this is presumably a one-time investment while learning Rust, much less of an ongoing hurdle.

I disagree. It's something you always have to think about. It might get easier but it doesn't magically go away.
You often should think about it in other languages too, ie to avoid concurrency bugs. If you don't, there's a good chance your program isn't correct, even if accepted by a less strict compiler.
Yes. But the point is that you don't have to "dumb down" your program to prove to a static analyser that it is correct.

Look at the kind of programs that NLL now allows. You wouldn't have to jump through those hoops in another language.

Satisfying the borrow-checker usually ends up implying that either:

a) you used .clone() everywhere and therefore are probably modifying something and failing to propagate the modifications to where they need to go; or

b) your design is inherently better, saner, easier-to-optimize, etc., than one which doesn't have to satisfy the borrow checker.

It's fast. It's type safe. Solid developer tooling story.

Those three things are very appealing, whether it's web or anything else.

Web servers for embedded or otherwise constrained systems, bolt-on embedded api servers for your existing apps, or just any high perf app/gateway. All the reasons you would otherwise do it in cpp except nope.
Very efficient usage of CPU and RAM. Regarding cloud functions like AWS lambda: Fast startup.