|
Description: |
Features:
- 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).
|