People tend to be obsessed with bleeding edge technology. But those who truly understand know that “bleeding edge” is an anti-pattern and there’s a reason it’s called that: it can bleed you as well.
That’s the thing, it is broken and there is a fix desperately needed. C lacks memory safety, which is responsible for many, many security vulnerabilities. And they’re entirely avoidable.
Remove the need to, yes. Remove the ability to? No, and rust doesn’t prevent you from doing that, it just makes you mark it unsafe so that way if you fuck up and cause a memory error, the root cause can be narrowed down to a tiny fragment of the code base.
I agree. And those decades of development come with huge advantages. Libraries. Patterns. Textbooks! Billions of lines of code you can cross reference and learn from!
It’s fun to bleed a little when you are tinkering. It’s not fun to have to reinvent the wheel because you choose a language that doesn’t have an existing ecosystem. That becomes and chicken-and-egg problem. The tinkerers fulfill this role (building out the ecosystem) and also tend to advocate for their tinkering language of choice. But there needs to be a real critical mass.
It takes decades to shift an entrenched ecosystem. Check in ten years if the following exist in languages other than C/C++: an enterprise grade database, a python(/etc.) interpreter that isn’t marked experimental, an OS kernel that is used somewhere real, an embedded manufacturer that ships the language as its first class citizen, a AAA game using it under the engine…
Like, in the last 15 years, I’m only aware of a single AAA game that used a memory safe language – Neverwinter Nights 2 used C# for part of the Electron Engine…
Rust is the most likely candidate here, although you see things like Erlang being used to make some databases (CouchDB). People see Rust being used on some real infrastructure projects that gain actual traction (polars comes to mind). Polars is an interesting use case though – it’s simply better than the other projects in its particular space and so people are switching to it not because it is written in rust at all… And honestly, that’s probably the only way this happens.
People tend to be obsessed with bleeding edge technology. But those who truly understand know that “bleeding edge” is an anti-pattern and there’s a reason it’s called that: it can bleed you as well.
If it ain’t broken, don’t fix it.
That’s the thing, it is broken and there is a fix desperately needed. C lacks memory safety, which is responsible for many, many security vulnerabilities. And they’re entirely avoidable.
So the solution is to take away any agency the developer may have over how their application allocates memory?
Remove the need to, yes. Remove the ability to? No, and rust doesn’t prevent you from doing that, it just makes you mark it
unsafe
so that way if you fuck up and cause a memory error, the root cause can be narrowed down to a tiny fragment of the code base.Have you heard of the
unsafe
block in rust?Anti Commercial-AI license
I agree. And those decades of development come with huge advantages. Libraries. Patterns. Textbooks! Billions of lines of code you can cross reference and learn from!
It’s fun to bleed a little when you are tinkering. It’s not fun to have to reinvent the wheel because you choose a language that doesn’t have an existing ecosystem. That becomes and chicken-and-egg problem. The tinkerers fulfill this role (building out the ecosystem) and also tend to advocate for their tinkering language of choice. But there needs to be a real critical mass.
It takes decades to shift an entrenched ecosystem. Check in ten years if the following exist in languages other than C/C++: an enterprise grade database, a python(/etc.) interpreter that isn’t marked experimental, an OS kernel that is used somewhere real, an embedded manufacturer that ships the language as its first class citizen, a AAA game using it under the engine…
Like, in the last 15 years, I’m only aware of a single AAA game that used a memory safe language – Neverwinter Nights 2 used C# for part of the Electron Engine…
Rust is the most likely candidate here, although you see things like Erlang being used to make some databases (CouchDB). People see Rust being used on some real infrastructure projects that gain actual traction (polars comes to mind). Polars is an interesting use case though – it’s simply better than the other projects in its particular space and so people are switching to it not because it is written in rust at all… And honestly, that’s probably the only way this happens.