Comment by alexaholic
18 hours ago
Rust is a tool that allows one to build cars for humans to drive, in order to avoid certain accidents. If you try to put your dog in the driver’s seat of a Rust-powered car, Rust will stop you and ask you to produce proof that the dog is a qualified human driver.
The world is a pretty big place, so of course there are people who sometimes put their dog in the driver’s seat. Sometimes by accident, sometimes out of necessity, and sometimes because they think it’s mighty fun. Since Rust is strict about who or what gets to drive the car, these people build their cars using other languages.
Some Rust-heads, however, are pretty adamant that cars are to be driven by qualified humans only, and therefore keep nagging everyone about how all cars should be built with Rust.
> cars are to be driven by qualified humans only
As a Rust programmer I'm fine with cars driven by dogs, I just want that to be clearly acknowledged as unsafe, and if that car is be driven in public roads, I would also like a safety comment stating all the precautions taken to make that safe for others, preferably reviewed by the police as well.
I for one don't care about memory safety. Rust makes it easier to compose software by expressing everything in your function/module signature. This is what OOP aimed to do, but was quite prescriptive (a datatype often isn't the natural unit of encapsulation). It maximizes local reasoning, so you can make changes to a large codebase with less understanding of uses elsewhere, and reuse functionality in new ways without changes.
C#, Go, Swift are (mostly) memory safe, but I don't think they provide this level of modularity or broader reliability. Expressive interfaces/contracts are useful for all sorts of things, you can use them for memory management but for me that's almost a by-product. I certainly don't consider it a restriction on the kinds of program you can write