Andrei Alexandrescu:
(*) Ada has many features missing in D that make its programs
significantly safer than D programs, like:
- built-in ranged integers;
- user-defined array indexes;
- clean syntax to stack-allocate matrices of runtime-defined
sizes;
- pointer kinds with different limitations;
- stack overeflow safeties;
- safe concurrency;
- no undefined semantics;
- explicit type conversions;
- sane modulus on negative numbers;
- integral runtime overflow tests;
- etc etc.
Bye,
bearophile
What did I just read? Oh boy.
Sorry, let me explain better and again. There are programming
tasks where a lot of reliability is required, but for some
reasons a widespread virtual machine is not desired. In such
cases people sometimes use C or C++ (sometimes with some enforced
restrictions) or Ada (or some of its stricter subsets, as Spark),
and once in a while Eiffel. D language offers features to
increase code reliability, but:
- As long as D compilers and Phobos are significantly buggy, it's
hard to write reliability programs, regardless of the qualities
of D language. Ada specs and Ada compiler writers know this very
well;
- As I have listed, Ada offers numerous means to constrain code
and avoid many bugs statically. From what I am seeing D is less
bug-prone than C++, but more bug prone than Ada. But so far I
have not seen people interested in using D in some of the places
where Ada is used.
Bye,
bearophile