Article about problems & suggestions for D 2.0

dsimcha dsimcha at yahoo.com
Sat Aug 27 10:30:21 PDT 2011


On 8/27/2011 1:14 PM, Benjamin Thaut wrote:
> After having used the D 2.0 programming language for a year now and
> having completed 3 projects with it, I wrote a small article about the
> problems I had with the D 2.0 programming language and what suggestions
> I have to improve it.
>
> http://3d.benjamin-thaut.de/?p=18
>
> Comments and criticism welcome
>

Excellent article.  I like the constructive criticism without the "D 
will never be better than C++, Walter Bright is an idiot, I will never 
use a GC language, D is slow on one benchmark therefore it is poorly 
designed and will be slow forever" attitude.

Some of the things you mention are definitely bugs. (I'd call emplace 
requiring exact c'tor arguments, TID not supporting shared, the 
thread-local storage/GC issue, and maybe no function overloading with 
template parameters bugs.  The TLS issue is already known.)  These have 
a lot higher a probability of getting fixed if you file them as bug 
reports (see http://d.puremagic.com/issues/ ).  Better yet, if yo know 
how to fix it, you can submit a pull request to the DProgrammingLanguage 
Github page.

Other things you mention are design decisions that are the result of 
carefully considered tradeoffs.  These include structs not having an 
identity, lack of implicit c'tors, and shared.  These are tradeoffs that 
may not be the best for your situation, but are not unforced errors.

As far as assert, maybe there should be a compiler switch that makes all 
asserts behave the way assert(0) does in release mode:  Simply issue the 
HLT instruction and use a debugger to figure out what went wrong. 
However, I think the current behavior of assert is the right default 
behavior because it gives clear hints as to what went wrong (and a stack 
trace on newer releases) even if you're not running in a debugger.

Associative array invariance may be fixable now using reference 
counting.  This issue has been in the back of my mind for a long time. 
Thanks for bringing it back to the front, and maybe it's worth fixing.


More information about the Digitalmars-d mailing list