3 ms·
I feel like once a language is standardized (or reaches 1.0), that's it. You're done. No more changes. You wanna make improvements? Try out some new ideas? Fine
by VyseofArcadia 1y ago
I feel like once a language is standardized (or reaches 1.0), that's it. You're done. No more changes. You wanna make improvements? Try out some new ideas? Fine, do that in a new language.
I can deal with the footguns if they aren't cheekily mutating over the years. I feel like in C++ especially we barely have the time to come to terms with the unintended consequences of the previous language revision before the next one drops a whole new load of them on us.
- ryao 1y agoI suspect this change was motivated by standards conformance.
- fuhsnn 1y agoThe wording of GCC maintainer was "the standard doesn't require it." when they informed Linux kernel mailing list. https://lore.kernel.org/linux-toolchains/Z0hRrrNU3Q+ro2T7@tucnak/ https://lore.kernel.org/linux-toolchains/Z0hRrrNU3Q+ro2T7@tu...
- matheusmoreira 1y agoReminds me of strict aliasing. Same attitude... https://www.yodaiken.com/2018/06/07/torvalds-on-aliasing/ https://www.yodaiken.com/2018/06/07/torvalds-on-aliasing/
- seritools 1y ago> If the size of the new type is larger than the size of the last-written type, the contents of the excess bytes are unspecified (and may be a trap representation). Before C99 TC3 (DR 283) this behavior was undefined, but commonly implemented this way. https://en.cppreference.com/w/c/language/union https://en.cppreference.com/w/c/language/union > When initializing a union, the initializer list must have only one member, which initializes the first member of the union unless a designated initializer is used(since C99). https://en.cppreference.com/w/c/language/struct_initialization https://en.cppreference.com/w/c/language/struct_initializati... → = {0} initializes the first union variant, and bytes outside of that first variant are unspecified. Seems like GCC 15.1 follows the 26 year old standard correctly. (not sure how much has changed from C89 here)
- hulitu 1y agoIt's careless development. Why think something in advance when you can fix it later. It works so well for Microsoft, Google and lately Apple. /s The release cycle of a software speaks a lot about its quality. Move fast, break things has become the new development process.
- pasc1878 1y agoThat does not make sense for anything that exists over decades. Do you want to be still using Windows NT, or C++ pred 2004 standard or python 2.0 We learn more and need to add to things., Some things we designed 30 years ago were a mistake should we stick with them. You can't design everything before release for much software. Games you can or bespoke software for a business as you can define what it does, but then the business changes.
- deleted 1y ago[deleted]
- pjmlp 1y agoProgramming languages are products, that is like saying you want to keep using vi 1.0. Maybe C should have stop at K&R C from UNIX V6, at least that would have spared the world in having it being adopted outside UNIX.
- rgoulter 1y agoI liked the idea I heard: internet audiences demand progress, but internet audiences hate change.
- ryao 1y agoIf C++ had never been invented, that might have been the case.
- pjmlp 1y agoC++ was invented exactly because Bjarne Stroustoup vouched never again to repeat the downgrade of his development experience from Simula to BCPL. When faced with writing a distributed systems application at Bell Labs, and having to deal with C, the very first step was to create C with Classes. Also had C++ not been invented, or C gone into an history footnote, so what, there would be other programming languages to chose from. Lets not put programming languages into some kind of worshiping sanctuary.
- uecker 1y agoI don't think C would have become a footnote if not for C++ given UNIX.
- pjmlp 1y agoMost likely C++ would not happened, while at the same time C and UNIX adoption would never gotten big enough to be relevant outside Bell Labs. Which then again, isn't that much of a deal, industry would have steered into other programming languages and operating systems. Overall that would be a much preferable alternative timeline, assuming security would be taken more seriously, as it has taken 45 years since C.A.R Hoare Turing award speech and Morris worm, and only after companies and government started to feel the monetary pain of their decisions.
- _joel 1y agoPerl 6 and Python 3 joined the chat
- Ragnarork 1y ago> I feel like once a language is standardized (or reaches 1.0), that's it. You're done. No more changes. You wanna make improvements? Try out some new ideas? Fine, do that in a new language. Thank goodness this is not how the software world works overall. I'm not sure you understand the implications of what you ask for. > if they aren't cheekily mutating over the years You're complaining about languages mutating, then mention C++ which has added stuff but maintained backwards compatibility over the course of many standards (aside from a few hiccups like auto_ptr, which was also short lived), with a high aversion to modifying existing stuff.