<story><title>How does D improve on C++17?</title><url>http://p0nce.github.io/d-idioms/#How-does-D-improve-on-C++17?</url></story><parent_chain></parent_chain><comment><author>sprw121</author><text>D is a awesome language to work with, it&amp;#x27;s got many useful language features that make the activity of code writing a pleasure. - I hope this criticism is taking constructively.&lt;p&gt;However not a beat a dead horse, but if you want to process more than a trickle of data in it you run into problems with the GC really quickly. I really feel the language would be better off without the GC.&lt;p&gt;These are not the same issues address by the JSON compiler post or w&amp;#x2F;e that surfaces a couple months ago.&lt;p&gt;From what I can tell, theres a global lock around everything in the GC, including allocations. In a multi-core world, this just simply doesn&amp;#x27;t work and it one of the major pain point of the language. I write data-intensive processing on high core count machines (32), and have had to resort to 0-allocation strategies, or in map-reduce contexts actually sharding at the process level, writing the results to disk, and then running a reducer process over the results.&lt;p&gt;You can write performant D code, but you give up large amounts of code safety. It&amp;#x27;s essentially just whatever you&amp;#x27;d write in C++ without the ownership semantics it gives you.&lt;p&gt;You can&amp;#x27;t have a core part of your language being an essentially unavoidable massive point of contention.&lt;p&gt;I&amp;#x27;ve literally seen 20x or more speedups in multithreaded cases just by making sure I reuse every buffer rather than create new ones.&lt;p&gt;I feel this is really holding back an otherwise great language to work in.&lt;p&gt;This is discussed in the reddit thread in more detail.</text></comment>
<story><title>How does D improve on C++17?</title><url>http://p0nce.github.io/d-idioms/#How-does-D-improve-on-C++17?</url></story><parent_chain></parent_chain><comment><author>CyberDildonics</author><text>D is a fantastic language.  C++ is so difficult to unseat as a systems language now since it is back as a moving target which is both evolving and has extremely robust tools to go with it.  Challenging it on the language level is not enough.</text></comment>