<story><title>GCC 11.1</title><url>https://lists.gnu.org/archive/html/info-gnu/2021-04/msg00011.html</url></story><parent_chain><item><author>Decabytes</author><text>I&amp;#x27;m naive about the language development process. I have no area of expertise in C++. But coming from a background in Python I&amp;#x27;ve seen people complain about Python getting bigger and bigger, and people have been complaining about C++ being huge for even longer.&lt;p&gt;In my naive opinion, It seems to me that both C++ and Python have reached a point where most people are satisfied with the features the language has. Most of the complaints are around warts in the language itself that people wish could be fixed (but can&amp;#x27;t due to backwards compatibility).&lt;p&gt;My question is why the need to keep adding features? Sure if something comes out that C++ is desperately lacking, add it in. But it seems like that hasn&amp;#x27;t been the case for a while.&lt;p&gt;My other question. Would it be possible for a language to work like an OS? Where there is a LTS version of the language that is supported for X years, and then a new version comes out that contains potentially (but not always if it&amp;#x27;s unnecessary) breaking changes? I guess Python was kind of an example of that with Py2 to Py3, but no one who started using python after 1.0 expected there to be a shift like that. But if from the outset there is that expectation that after 5-10 years there will be a new version that removes warts in an old version would people accept that?&lt;p&gt;It seems to me that the lifecycle of a language that is successful is
1. Be the new hotness and solve a problem in the programming space
2. Gain traction and users
3. Release version 1.0, become bound by decisions that might haunt you for the rest of the programs life
4. Accumulate features, bloat and warts
5. Have people complain about warts that you can&amp;#x27;t fix due to breaking changes
6. A new language develops that fixes your warts.
7. Repeat&lt;p&gt;It seems like the cognitive load from &amp;quot;upgrading&amp;quot; a language as opposed to learning an entirely new language from scratch (even if it fixes a lot of your gripes) would be a lot easier.&lt;p&gt;Having been playing around with Rust for a bit, I&amp;#x27;ve seen the conversation come up about warts in Rust, and I think people fear if it will eventually become another C++. I think the answer is probably yes, if it endures for a similar amount of time that C++ did</text></item></parent_chain><comment><author>chubot</author><text>Lots of answers to this, but&lt;p&gt;(1) Computing is growing as a whole.  What was good enough in 1980 isn&amp;#x27;t good enough now.  Computing is used for more problems, and by more people.  Programs are bigger, so there is pressure toward compressing common code and idioms.  Hardware is more capable and more complex: it&amp;#x27;s more heterogeneous, dynamic, has more sensors, etc.&lt;p&gt;(2) Different problems have different use cases.  Your &amp;quot;wart and bloat&amp;quot; is another person&amp;#x27;s feature, and vice versa.&lt;p&gt;Multi-core, multithreading and GPU are major reasons that features have been added to C++, and those were less of a concern in 1980 when C++ was conceived. (especially GPU).&lt;p&gt;The &amp;quot;cycle&amp;quot; you lay out isn&amp;#x27;t accurate because languages in fact do make progress.  We&amp;#x27;re not going around in a circle.  Rust fixes a lot of things wrong with C and C++; Go and Swift are also improvements, etc.  (I don&amp;#x27;t even use those languages, but I can recognize the improvements as someone who&amp;#x27;s been using C and C++ for a long time).&lt;p&gt;I recommend writing some C from scratch to get a feel for this.  I do this on occcasion, because there are advantages.  But you will also be extremely hard pressed to do anything that&amp;#x27;s interesting for a user.  The gap to bridge is very large.&lt;p&gt;For example, try writing a web app in C (not for production).  You can save a lot of code by using CGI, but even then it&amp;#x27;s not fun.  (It IS still done; look at the source code to the modern cgit UI if interested.)&lt;p&gt;Also try to modify and understand source code from the 90&amp;#x27;s like GNU bash or CPython.  (Interestingly, there is a pretty big difference between the codebases, despite being from similar eras.)  Nonetheless it should be clear from that experience that we&amp;#x27;ve made progress.&lt;p&gt;The progress isn&amp;#x27;t perfect, but freezing languages in time isn&amp;#x27;t a reasonable option, given the massive change in the  problems being solved, and the environment.</text></comment>
<story><title>GCC 11.1</title><url>https://lists.gnu.org/archive/html/info-gnu/2021-04/msg00011.html</url></story><parent_chain><item><author>Decabytes</author><text>I&amp;#x27;m naive about the language development process. I have no area of expertise in C++. But coming from a background in Python I&amp;#x27;ve seen people complain about Python getting bigger and bigger, and people have been complaining about C++ being huge for even longer.&lt;p&gt;In my naive opinion, It seems to me that both C++ and Python have reached a point where most people are satisfied with the features the language has. Most of the complaints are around warts in the language itself that people wish could be fixed (but can&amp;#x27;t due to backwards compatibility).&lt;p&gt;My question is why the need to keep adding features? Sure if something comes out that C++ is desperately lacking, add it in. But it seems like that hasn&amp;#x27;t been the case for a while.&lt;p&gt;My other question. Would it be possible for a language to work like an OS? Where there is a LTS version of the language that is supported for X years, and then a new version comes out that contains potentially (but not always if it&amp;#x27;s unnecessary) breaking changes? I guess Python was kind of an example of that with Py2 to Py3, but no one who started using python after 1.0 expected there to be a shift like that. But if from the outset there is that expectation that after 5-10 years there will be a new version that removes warts in an old version would people accept that?&lt;p&gt;It seems to me that the lifecycle of a language that is successful is
1. Be the new hotness and solve a problem in the programming space
2. Gain traction and users
3. Release version 1.0, become bound by decisions that might haunt you for the rest of the programs life
4. Accumulate features, bloat and warts
5. Have people complain about warts that you can&amp;#x27;t fix due to breaking changes
6. A new language develops that fixes your warts.
7. Repeat&lt;p&gt;It seems like the cognitive load from &amp;quot;upgrading&amp;quot; a language as opposed to learning an entirely new language from scratch (even if it fixes a lot of your gripes) would be a lot easier.&lt;p&gt;Having been playing around with Rust for a bit, I&amp;#x27;ve seen the conversation come up about warts in Rust, and I think people fear if it will eventually become another C++. I think the answer is probably yes, if it endures for a similar amount of time that C++ did</text></item></parent_chain><comment><author>nsajko</author><text>&amp;gt; people wish could be fixed (but can&amp;#x27;t due to backwards compatibility)&lt;p&gt;This is actually not completely true. The only example I can think of right now is how C++20 deprecated some uses of volatile, but the standards definitely do deprecate features and break backwards compatibility. This is done with care, only when it makes sense. The standards and individual papers&amp;#x2F;proposals are public, so feel free to take a look, they include rationales in such cases.&lt;p&gt;&amp;gt; My question is why the need to keep adding features? Sure if something comes out that C++ is desperately lacking, add it in.&lt;p&gt;Well, that already is how it works. Just because you don&amp;#x27;t know about some change doesn&amp;#x27;t mean it wasn&amp;#x27;t worthwhile.&lt;p&gt;There are often some complaints regarding the standardization process itself though, I think that, e.g., the coroutines proposals situation with the multiple competing proposals was pretty controversial. But that&amp;#x27;s just how it is with C, C++ (and Ada, Pascal, Basic, ...). It seems like the days of ISO reigning over programming languages are over though, in that newer programming languages aren&amp;#x27;t given over to ISO.</text></comment>