← Back to context

Comment by WarmWash

17 hours ago

Can someone explain to my non-programmer self what the deal is with Rust?

Even not being in the tech space, I have long picked up on this quasi-religous aura around it.

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

before rust, if you wanted to use a "fast" programming language you had to use C or C++, which are fraught with sharp edges. Rust gives you all the performance benefits of a compiled language, with barely any sharp edges.

Using python for a purpose like this is extremely strange -- it clearly is just technology debt they've been carrying around from a silly decision over a decade ago -- so someone mentioned a contemporary, more acceptable alternative. I don't really see why this threatens some people, much less the incredibly stupid "religious" nonsense.

Rust has lots of inertia behind it, a fantastic core library, fantastic concurrency and scalability and excellent LLM support. If someone were greenfield building a service like this today, instead of being bound by poor decisions in the past, had infinite knowledge of every toolset and language and option, there is a very good chance they would settle on Rust. They might not, but it's definitely a finalist. So not remotely surprising someone would mention it.

That this caused someone to flip out is hilarious though.

  • > it clearly is just technology debt they've been carrying around from a silly decision over a decade ago

    Almost three decades ago—development started in 1999 and the game was released in 2003.

    • This is a weird conversation. Python was a strange choice back then, but is now probably the most popular programming language in existence. If anything the choice of Python (and C++) was remarkable foresight / luck.

      1 reply →