<story><title>C++17 is formally approved</title><url>https://herbsutter.com/2017/09/06/c17-is-formally-approved/</url></story><parent_chain><item><author>everheardofc</author><text>C++ shows that in theory you can fix any flaw in an existing programming language as long as you maintain backwards compatibility by simply adding more features. The only thing you cannot change are implicit defaults (e.g. pass by value is the default, you have to manually opt out to pointers or references).&lt;p&gt;I like modern C++ because for me it&amp;#x27;s a reasonable compromise between java safety and C safety. Other than out of bounds memory accesses and legacy code I feel there is not much that can go wrong. However compiling C++ projects takes ages and in the projects I&amp;#x27;ve worked on I often have to modify headers that are included almost everywhere. Every trivial changes requires a 5 minute rebuild.&lt;p&gt;After working with several high level programming languages with slow compilers I realised the following: typing is fast, compiling is slow. There is a reason why go is so popular. It offers that tradeoff in fast turn around time &amp;#x2F; compilation time with reasonably good performance and simplicity in exchange for more keyboard bashing and keyboard bashing is a cheap price to pay for what you&amp;#x27;re getting back.</text></item></parent_chain><comment><author>staticassertion</author><text>&amp;gt; C++ shows that in theory you can fix any flaw in an existing programming language as long as you maintain backwards compatibility by simply adding more features.&lt;p&gt;I feel like C++ proves exactly that you can&amp;#x27;t.</text></comment>
<story><title>C++17 is formally approved</title><url>https://herbsutter.com/2017/09/06/c17-is-formally-approved/</url></story><parent_chain><item><author>everheardofc</author><text>C++ shows that in theory you can fix any flaw in an existing programming language as long as you maintain backwards compatibility by simply adding more features. The only thing you cannot change are implicit defaults (e.g. pass by value is the default, you have to manually opt out to pointers or references).&lt;p&gt;I like modern C++ because for me it&amp;#x27;s a reasonable compromise between java safety and C safety. Other than out of bounds memory accesses and legacy code I feel there is not much that can go wrong. However compiling C++ projects takes ages and in the projects I&amp;#x27;ve worked on I often have to modify headers that are included almost everywhere. Every trivial changes requires a 5 minute rebuild.&lt;p&gt;After working with several high level programming languages with slow compilers I realised the following: typing is fast, compiling is slow. There is a reason why go is so popular. It offers that tradeoff in fast turn around time &amp;#x2F; compilation time with reasonably good performance and simplicity in exchange for more keyboard bashing and keyboard bashing is a cheap price to pay for what you&amp;#x27;re getting back.</text></item></parent_chain><comment><author>flavio81</author><text>&lt;i&gt;&amp;gt;C++ shows that in theory you can fix any flaw in an existing programming language as long as you maintain backwards compatibility by simply adding more features.&lt;/i&gt;&lt;p&gt;Well, &amp;quot;adding more features&amp;quot; can&amp;#x27;t be done &amp;quot;simply&amp;quot; if you want to &amp;quot;maintain backwards compatibility&amp;quot;; indeed, in the process of doing this is that the &amp;quot;flaws&amp;quot; are potentially augmented.</text></comment>