Vše o nově připravovaném programovacím jazyku D, který Walter Bright nepochybně v brzké době představí.
Výhody
* native code speed
* extremely fast compilation times
* garbage collection (although you can manage your own memory if you want)
* OOP - by reference only, easy initialization, always virtual
* cleaner template metaprogramming syntax, more powerful templates, as well
* built-in dynamic and associative arrays, array slicing
* versioning (no preprocessor madness)
* link-compatibility with C
* nested functions
* class delegates / function pointers
* module system
A odpověď, která se na slashdot.org vzápětí objevila:
From the compared to C/C++ list:
* native code speed
As opposed to C/C++.
* extremely fast compilation times
Point granted (compared with most C++ compilers).
* garbage collection (although you can manage your own memory if you want)
Point granted, even though C and C++ arguably have optional garbage collection as well (if you link to the right library).
* OOP - by reference only, easy initialization, always virtual
Only value semantic? Meyer had to accept that value semantic was useful, and add it to Eiffel eventually, and C# added it over Java.
And no way to specify that a function will always be the one specific. Good luck doing any kind of reasoning there.
Bragging about missing features, that are essential to many tasks.
* cleaner template metaprogramming syntax, more powerful templates, as well
*More* powerful templates? The usual complaint is that C++ templates are too powerful (a Turing-equivalent compile time language).
* built-in dynamic and associative arrays, array slicing
Not exactly a recommendation that the core language apparently is so weak that these can't be put into libraries.
* versioning (no preprocessor madness)
I'm guessing he meant variants here, the preprocessor is often used for variants, rarely for versioning.
* link-compatibility with C
Which C and C++ of course lacks?
* nested functions
Point.
* class delegates / function pointers
Obviously both C and C++ have function pointers.
* module system
More preprecessor replacement here.
The C#/Java list:
* similar syntax
But totally different from C++?
* No virtual machine or interpreter
You can compile Java and C# to native code as well, so this is just another case of bragging about a missing feature.
* built-in unit testing and design-by-contract
I'm a C++ programmer, and this is by far the most interesting aspect of the D language (and of Eiffel before that). Don't know why it should be in the Java/C# list.
Ehm, zatím asi zbytečný thread, jelikož D ještě nebylo vypuštěno, ale do budoucna se může hodit.