To read all comments associated with this story, please click here.
I don't think so.... not yet.
However, Andrei Alexandrescu, one of the gurus in the C++ community, has written a book on D - "The D Programming Language". There is also a very active and friendly D forum at Digital Mars.
There are several D compilers. The original Digital Mars one. GDC, a D front-end to GCC. LDC, an LLVM-based one.
There's a very good list of D features here -
http://www.d-programming-language.org/comparison.html
Edited 2011-06-16 01:32 UTC
What the heck are you talking about? It is C++ that has the bloat with the ten-thousand special cases for templates and constructors and operators and overloading and implicit type conversions and so forth and so on. D seems to have simplified a lot of that. I'm not sure what else you are referring to in terms of "bloat" (a term that is thrown around far too often these days -- as if we should all be doing 8-bit assembler on some 10,000 transistor chip from the 70s).
The problem with "done right" OS, tools, languages is that most of them fail victim of "worse is better" concept.
http://dreamsongs.com/WorseIsBetter.html
D is in some areas C++ done right and has quite a few nice features, but C++ has the tooling and industry support. So unless D provides a few killer features the adoption will never be that much.
A language to succeed has either to provide killer features that gather people around it until the language gains momentum, or needs industry push.
That's one of the things keeping me sticking with C++. Garbage collection is an ugly and unsatisfying solution to a minor problem.
I think a better solution is judicious use of reference counting & shallow copying. Then you get to keep speed, determinism, smoothness (no stopping the world), and deterministic destruction (for RAII).
Timmmm,
"That's one of the things keeping me sticking with C++. Garbage collection is an ugly and unsatisfying solution to a minor problem."
I think it's more a matter of opinion.
The problem with delete in a managed language is that the language can no longer vouch for program safeness with regards to preventing code from corrupting it's own structures. Deleting an object which is still in use could cause stray pointers/references.
With this in mind, does your aversion to garbage collection (and implicitly managed languages) carry over to environments like Perl/PHP/javascript for web development? I think using unmanaged C/C++ would be rather dangerous.
"I think a better solution is judicious use of reference counting & shallow copying. Then you get to keep speed, determinism, smoothness (no stopping the world), and deterministic destruction (for RAII)."
It's tempting to think so, but it's not safe to assume that malloc/free is always going to be faster than GC. There are alot of factors, it came up not long ago:
http://www.osnews.com/comments/24843
Are you thinking that the language ought to enforce reference counting on objects or just that programmers should use it as a design pattern?
One issue with ref counting is cyclic data structures. Though it may be uncommon, I'd hate for any language to be limited in this fashion: Visual basic used ref counting and was susceptible to memory leaks in cyclic structures.
I personally don't have any problem using new/delete myself, but I don't have any serious objections to managed memory if it helps devs produce more reliable code.
Edited 2011-06-18 03:45 UTC





Member since:
2007-05-12
After having explored the D programming language, I'm a convert. D is very much designed using a "less is more" approach, and I'm sold on it. The fact that it has garbage collection built-in is nice as well.
Simple, elegant and clean.
D is "C++ done right".