3 ms·
Languages need to break stuff once every X years or they will die. Witness C++ - which is currently undergoing a death spiral. Thanks to perma ABI and language
by lenkite 3y ago
Languages need to break stuff once every X years or they will die. Witness C++ - which is currently undergoing a death spiral. Thanks to perma ABI and language compatibility, even genius level people are finding it impossible to create workable language/stdlib improvements. There is always an edge case that breaks compatibility which is un-acceptable. Most folks just give up after the Nth rejection of their feature proposal.
And performance of many components of the standard library is now laughable. C++ std::regex is slower than most interpreted language regex libraries. It is utterly embarrassing for a language that prides itself on performance. This keep-it-backward-compatible till the heat death of the universe attitude of the standards committee is causing folks to create several successor languages that transpile to C++ - or just move to Rust.
Its the perfect example of how adherence to backward compatibility over everything else in a language is just effective suicide.
- pjmlp 3y agoSome of the issues regarding ABI are caused by compiler vendors themselves, ISO C++, just like ISO C, has zero content on ABI. Same applies to stuff like std::regex, compiler vendors are the ones to blame. In any case, there is plenty of C++98 code that won't compile in C++23, because even ISO C++ does break backwards compatibility.
- jerf 3y agoC++'s problem isn't that it stopped breaking stuff. C++'s problem, or as I like to call it, Katamari Dama-C++, is that it needed to freeze a long time ago and they just needed to build a new language. They're exactly who I am thinking of in terms of just making a new language. By language scales, Rust is exploding on to the scene and eating C++'s lunch precisely because they won't stop mucking with it. You might say that in absolute terms Rust is still not that much code and that's true, but in terms of how languages tend to turn over Rust is blowing C++ away. Much faster than the usual such process. There are other languages that just need to accept that they are what they are and that endlessly adding features is only making their situation worse. Looking at you, Python. The community should just have accepted that Python can not be multithreaded and it doesn't have a good async solution, and people who needed these things should have started moving to other languages for solutions to those problems, instead of accreting an ever-increasing bunch of features flailing about trying to solve these deep, fundamental problems, and convincing a whole bunch of people that if they just hang on for another year, 3 years, 5 years, maybe a bit longer, Python will someday solve their problem. Now they're years into that process and they'd have been better off just switching years ago instead of being on an increasingly complicated language, and Python would have been better off being a good Python instead of trying to chase the kids.
- lenocinor 3y agoPython seems closer to the GIL being optional than it’s ever been before: https://www.backblaze.com/blog/the-python-gil-past-present-and-future/ https://www.backblaze.com/blog/the-python-gil-past-present-a... I was surprised to read this myself.