Posted by signa11 5 days ago
Is this still true? MSVC is pretty good at compiling C++ nowadays
This was the official position in 2012,
https://herbsutter.com/2012/05/03/reader-qa-what-about-vc-an...
However after the Microsoft reboot with Satya, there was a change of heart regarding C, back in 2020, with C11 and C17 being supported,
https://devblogs.microsoft.com/cppblog/c11-and-c17-standard-...
And 2022
https://devblogs.microsoft.com/cppblog/c11-atomics-in-visual...
However there is no official roadmap regarding C23 support, and now with the whole safety discussion going on and Secure Future Initiative, probably will never happen.
Additionally clang is a blessed compiler at Microsoft, it is included on Visual Studio, so whatever MSVC doesn't support can be done in clang as alternative.
https://developercommunity.visualstudio.com/t/Implement-C23-...
https://developercommunity.visualstudio.com/t/Implement-C26-...
Security changes,
https://azure.microsoft.com/en-us/blog/microsoft-azure-secur...
https://blogs.windows.com/windowsexperience/2024/11/19/windo...
Yup, we are never getting C23. Good thing C11 is decent enough, I guess.
VLA situation seems complex: https://stackoverflow.com/questions/55696680/in-which-versio...
> The truth is that any reasonably complicated software system created by humans will have bugs, regardless of what technology was used to create it.
"Drivers wearing seatbelts still die in car accidents and in some cases seatbelts prevent drivers from getting out of the wreckage so we're better off without them." This is cope.
> Using a stricter language helps with reducing some classes of bugs, at the cost of reduced flexibility in expressing a solution and increased effort creating the software.
...and a much smaller effort debugging the software. A logic error is much easier to reason about than memory corruption or race condition on shared memory. The time you spend designing your system and handling the errors upfront pays dividends later when you get the inevitable errors.
I'm not saying that all software should be rewritten in memory-safe languages, but I'd rather those who choose to use the only language where this kind of errors regularly happens be honest about it.
I'm not trying to hide anything, just help shift the balance back to common sense.