D    up http://www.digitalmars.com/d/index.html
  similar languages: C   C#   C++   C-Talk   Cilk   Java   Objective-C   Pike   TOM  


  • Garbage Collection (automatic memory management).
  • Modules (similar to Java packages); this makes C's header files superfluous and reduces compile-time dramatically for large projects (this also reduces code duplication).
  • Contracts (Design by Contract - DbC); Invariants, Pre- and Postconditions.
  • For each class, a unit-test can be specified.
  • Built-in strings, arrays (dynamically-sized, as well as static array as in C), associative arrays (hashs/dictionaries).
  • Single inheritance with interfaces (like Java).
  • Synchronization keywords (like Java).
  • C functions can be accessed directly from D.
  • Inline assembler.
  • Versioning (replaces #if directives).
  • Stronger typecheching than in C/C++.
  • Exception handling (throw/try-catch-finally).
  • Array slicing.
  • Setter/getter methods for object-properties (e.g. a.text = ... or ... = a.text).
  • No preprocessor/macros neccessary.
  • Win32-specific: D objects are compatible with COM-objects (similar to C#).
Negative Aspects:
  • No (not yet?) generic classes (templates).
  • Not yet (?) open source.
  • Still a "beta"-release; language and compiler not yet as mature as other languages (no standard like C, C++ or C#).
  • No port for Unix available (but a D to C converter is in work).
  • Strong overloading restictions (this is why D uses printf instead of C++'s counterpart cout).