5 ms·
Because the people involved with C++ have a toxic aversion to learning from other languages. Anytime issues are brought up the people involved with C++ standard
by Kranar 5y ago
Because the people involved with C++ have a toxic aversion to learning from other languages. Anytime issues are brought up the people involved with C++ standardization keep yapping the line that "But C++ is not like <other language>." and then proceed to implement a half-assed version of what other languages have and then 2-3 years later people find all kinds of footguns that could have simply been avoided had proper research been performed.
The big issue is that becoming involved in the C++ standardization process is purposely arcane, requiring people to physically travel to remote locations, miss time off work, and spend a lot of money. There are literally substantial language features added to C++ that are nothing more than the work of maybe 3-4 people. These features could have benefited enormously from having 100s, if not 1000s of potential developers exercising use cases and contributing suggestions, but the standardization process is heavily gated.
- duped 5y agoI feel like this is a strawman. 9/10 times when there is resistance to a particular feature it's because implementing it breaks the ABI. > requiring people to physically travel to remote locations, miss time off work, and spend a lot of money. It's a different kind of barrier to entry, but I would be surprised if the attendees of the standards meetings aren't being compensated for it.
- UncleMeat 5y agoYup this is the core problem. What should C++ prioritize? 1. Backwards compatibility with already existing binaries? 2. Speed speed speed? 3. Ergonomics?
- deleted 5y ago[deleted]
- overgard 5y agoWait I thought C++ never even specified an ABI? Isn't name mangling and calling conventions left to the implementation?
- initplus 5y agoThere is a large culture among C++ users of distributing pre-compiled binaries of dependencies. See every Linux distribution, or the MSVC ecosystem where sharing precompiled .dll's is the norm. In this context ABI breaking changes are not viable due to the proliferation of pre-existing compiled binaries. What the standard says is only half the story...
- pjmlp 5y ago> There is a large culture among C++ users of distributing pre-compiled binaries of dependencies. See every Linux distribution, or the MSVC ecosystem where sharing precompiled .dll's is the norm. That is why I can code on the go in C++ on my travel netbook, while I mostly use Rust when plugged, or have to do a full build before leaving.
- jcelerier 5y agoSure, but in the end everyone codes against implementations, not the standard - the standard does not even know/care about dynamic libraries