The claims that Java is better than Ada because it is "pure" OO are
False because that does not make a language "better," and false because
Java is not "pure."
The need to keep track, in Java, of when you must use 'new' and when you
can't, and especially, the need to think on almost EVERY operation whether
the semantics of the operation are primitive or reference is a real
disadvantage to Java beginners.
We must admit, though, that Ada does allow the same confusion in some
cases. But it's much less than in Java, and in Ada it ONLY happens with
types that have been DECLARED to be access. (I'm speaking about the fact
that omitting 'all' sometimes refers to the pointer and sometimes to the
I don't have the data to know whether it is a problem to experienced Java
programmers. Many of the flaws in Java are there because the creators of
Java were experienced C programmers. They omitted features that gave them
trouble in C, but they left in bad features because they were experienced
enough that they had developed good habits with regard to those bad
I revised that last sentence three times, but couldn't make it clearer.
I guess English is bad and I'll have to invent a new language.