Surely a language such as Java is much better for things like design by contract through JML? It may not be built-in such as D's `in` and `out` blocks, but there is tool-support for both runtime and static checking, and JML can also describe things such as class invariants.
One of awful things about programming in many languages is that there's a gazillion tools you need to tack-on before you can do any engineering. In C++ that includes Doxygen for documentation, C++Unit for unit tests, gprof, gcov, valgrind, and so on. One of the nice things about D is that so much of this is part of the language or build into DMD.
So yes, sure, you can add what ever you like the Java and claim its just as good (or better). The difference is that in D its all right there already.