cross-posted from: https://sh.itjust.works/post/52190045
Microsoft wants to replace its entire C and C++ codebase, perhaps by 2030
cross-posted from: https://sh.itjust.works/post/52190045
Microsoft wants to replace its entire C and C++ codebase, perhaps by 2030
I mean, Rust has the massive upsite that it won’t compile in many cases if you fuck things up. Then again, embedded or generally low-level driver-y stuff is still in its infancy in Rust. Relative to C/C++ that is.
There is stuff that you need that has no official Rust support. There is poor documentation and half baked frameworks. There are examples being silently outdated, breaking changes between framework versions, and nighlty-versions from Github mixed in to fix them. And then of course plenty of timing and hardware dependent things you will need to do yourself.
I do this for a living and personally tried to use AI here and there to help me out, but oftentimes it fails miserably. Not always, but very often.
Rust helps you resolve memory bugs. Not logic bugs. Yeah, it’s going to be new memory safe code… But it won’t be bugfree code.
It can help with logic bugs (e.g. by encoding the state machine logic directly in the type system, so an invalid transition won’t compile), and things like data sharing issues (Again, type system, tracks sharable objects vs. those that aren’t), but none of those are as “impervious” as the memory safety stuff.
But that all still requires rearchitecting, because if the existing code already follows those rules, it already probably doesn’t suffer from those issues (e.g. I know you can do the state machine type stuff in C# at least)
Ain’t gonna be memory safe either, they’ll just wrap everything in
unsafe.Oh wait… It’s AI. Just to pass the compiler and the unit tests it will either cast to whatever it desires or just make the tests pass forcefully.