▲ | hardwaregeek 3 days ago | |||||||||||||
Nice! I've wanted to give a similar talk. My thesis is that Rust won on usability above all else. If you look at the semantics of Rust, it's essentially an ML style language with typeclasses and linear types. In some alternate history that's a PhD thesis by someone at Inria that exactly 4 people use. But by making the language actually usable with good errors, familiar syntax (yes, syntax matters!), and documentation, Rust got users. I don't want to get into an in depth comparison but if you look at the documentation of even the most popular functional languages, it's not even close. And they've had a head start of decades! | ||||||||||||||
▲ | tialaramex 3 days ago | parent | next [-] | |||||||||||||
To be clear: Rust does not have linear types. Rust has affine types. An affine Goose can't destroyed more than once. However zero isn't more than one. A linear Goose must be destroyed exactly once. Austral would be an example of a language with linear types. In C++ if we destroy this Goose twice, probably everything catches on fire, whoops. In Rust or Austral if we attempt to destroy this Goose twice the code doesn't compile. No executable for you until you stop destroying the Goose twice. In C++ or Rust if we forget to destroy the Goose, the Goose-destroying code never runs. Hope that wasn't important. In Austral if we forget to destroy the Goose, the code doesn't compile. No executable for you until you ensure the Goose is destroyed. | ||||||||||||||
▲ | pornel 3 days ago | parent | prev | next [-] | |||||||||||||
Rust has a combo: people come for safety, stay for usability. Languages struggle to win on usability alone, because outside of passion projects it's really hard to justify a rewrite of working software to get the same product, only with neater code. But if the software also has a significant risk of being exploited, or is chronically unstable, or it's slow and making it multi-core risks making it unstable, then Rust has a stronger selling point. Management won't sign off a rewrite because sum types are so cool, but may sign off an investment into making their product faster and safer. | ||||||||||||||
| ||||||||||||||
▲ | mrklol 3 days ago | parent | prev | next [-] | |||||||||||||
Not sure if I would follow that point about usability. For me usability means also how usable it is to new people. How usable is the language to a foreign person compared to e.g. Python, Go or even Java - or if you want to mention functional languages like F#? But besides that I am totally on your side, usability is great. | ||||||||||||||
▲ | IshKebab 3 days ago | parent | prev [-] | |||||||||||||
Couldn't agree more about the syntax. It may be "ugly" but it's just so much easier to mentally parse than ML-style syntax. |