Coming From /
Java
Difference (last change) (no other diffs, normal page display)
Added: 0a1,3
Porting is covered in JavaToD |
Deleted: 26,27d28
* JavaToD Converting Java to D * LanguagesVersusD |
Deleted: 29d29
* ![]() |
Changed: 31c31,39
* ![]() |
* ![]() == Related = * Languages vs. D * ![]() * ![]() * ![]() * Language Specification * Development with D |
Porting is covered in JavaToD
What D and Java have in common:
- Have a syntax heavily influenced by C/C++.
- Use garbage collection.
- The "." operator is always used (instead of -> or :: operators)
- Include null as a keyword.
- Values are initialized before they're used.
- Feature error handling using try-catch-finally.
- There is no VM in D. Everything is compiled to machine code.
- D allows pointers (not that their use is encouraged).
- In D 'private' member data can be accessed from anywhere in the same module (file)
- D has a goto command (if you need it it's there).
- D has conditional compilation (with version/debug statements)
- In D, one can use integers to govern if statements.
- Java has the boolean type, but in D, it's bool
- Java has a String class, D has char[] (since 1.016/2.000 there's a string type alias)
- D has dynamic arrays and hashes built-in (they are classes in Java)
- D has unittests and contracts built-in (they are libraries in Java)
- D's modules are similar to packages, but symbols can be imported into the global scope.
- You can use inline assembly in D. (if the D compiler supports it)
- D doesn't have an 'instanceof' operator, because casting checks for the validity of the cast and returns null if it isn't valid. Ex: With Cat cat = cast(Cat) dog;, cat would be null if dog can't be cast to a Cat.
- D has extensive support for static metaprogramming (Java only supports generics)
Why D Isn't Java? by Daniel Yokomiso
C# vs. Java
GDC for NestedVM
Related
- Languages vs. D
D Transition Guide
Feature List
Rosetta Code: D category
- Language Specification
- Development with D