this post was submitted on 18 Feb 2025
-6 points (43.5% liked)

Programming

18333 readers
527 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities [email protected]



founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] deathmetal27 4 points 3 days ago (2 children)

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.

[–] [email protected] 6 points 3 days ago (1 children)

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.

[–] deathmetal27 -3 points 3 days ago (2 children)

So the solution is to take away any agency the developer may have over how their application allocates memory?

[–] [email protected] 7 points 2 days ago

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.

[–] [email protected] 1 points 2 days ago

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.