Remix.run Logo
AlotOfReading 18 hours ago

    Now, a few defence roles are creeping in, presumably due to the US government distancing itself from unsafe languages. 
I know a few contractor teams that have moved to Rust not because of any federal pressure, but simply because they're small and hierarchical enough that 1-2 people who understand the benefits are able to set the development language.
eggy 15 hours ago | parent [-]

They've been using safe languages like Ada and SPARK2014 for decades, and those are hardly unsafe. In fact they are safer and more mature than Rust and easier to learn IMHO.

AlotOfReading 14 hours ago | parent | next [-]

Tried hiring people for Ada jobs, or finding open source stuff to use in it? Ada has failed to find a market even in the safety-critical niches it should be dominating. Heck, AdaCore is putting out more Rust stuff these days than Ada.

pjmlp 9 hours ago | parent [-]

Yet, 7 companies are still in business selling Ada compilers, in a world where most devs refuse to pay for tools while expecting to be paid themselves.

AlotOfReading 9 hours ago | parent [-]

And presumably they're all selling almost exclusively to the aerospace industry. There's like a dozen COBOL compiler vendors too. It's not indicative of the health of the language ecosystem.

pjmlp 8 hours ago | parent [-]

Ada is used all over the place in high integrity computing, that is much more than aerospace.

Well, COBOL just got ISO COBOL 2023 out of the door, and both Visual COBOL and NetCOBOL, still offer a much better development experience than many FOSS toolchains.

galangalalgol 13 hours ago | parent | prev [-]

I don't think spark is easier to learn. Ada probably is. Ada sacrifices some performance for some of the benefits rust gets for free though, and deallocating memory is unsafe in the versions I've played with. If forbidding free is the way we choose to eliminate use after free, then there are a lot more memory safe languages.

pjmlp 9 hours ago | parent [-]

Only if you never moved beyond Ada83.

Controlled Types and SPARK provide the mechanisms to deallocate only when it is actually safe to do so.

Additionally unbounded collections, are just like graphs in Rust, they provide safe ways to managed dynamically sized collections, while hiding the unsafe code in implementation.