For what it's worth, I have written several Ada/Java comparison
papers, and some others are in progress:

"A Comparison of the Object-Oriented Features of Ada 95 and Java",
in Tri-Ada'97 Proceedings.

"A Comparison of Ada and Java as a Foundation Teaching Language",
to be presented at ASEET '98 later in July, and also to be reprinted
in the Sept-Oct '98 Ada Letters

"A Comparison of the Concurrency Features of Ada and Java"
to be presented at SIGAda '98 Conference in November

"A Comparison of the Real-Time Support in Ada and Java"
to be presented at the Ada UK Conference in October

These intend to be objective comparisons (well, as objective
as someone can be who has lived and breathed Ada for
nearly 20 years :-)  I plan to have all of these available on the
Aonix Web site.

In any event here are a few quick comments on Mike Brenner's
message:

>However, Ada has the disadvantage of not having synchronized methods.

This is an advantage!  Java's synchronized methods are a throwback
to 1970's style monitors, and Ada's tasking model is much better.
For more detail, come to SIGAda '98 and attend my presentation :-)

>In addition, Java permits circular references in its USES command which
>Ada does not permit in its WITH command. Is this an advantage or
>disadvantage?

What is the Java "uses" command?  The "elaboration" rules for
class loading in Java are tricky, and you need to understand carefully
what happens when with respect to field initialization.

>Java has the advantage of a large runtime library which has not been
>fully implemented in Ada yet.

Yes, I agree with this observation, although in some cases quantity has
come at the expense of quality.  Sun seems to have rushed out with versions
of some of the API packages before they had really matured.  (Witness
the complete revision of the AWT event model between V1.0 and V1.1)

>The ultimate mystery of life remains why
>C++, Ada, and Java 1.1 had runtime libraries standardized this year

This year?  Ada's libraries were standarized in 1995.

>and they were NOT THE SAME! Is this the definition of ignorance or
>just the definition of ignoring each other?

Why a mystery?  I don't think there was a lot of overlap across the groups
responsible for the three languages.  During the Ada 9X process we did
pay attention to other languages' standard libraries, and you can see
some obvious traces of C (e.g., Ada.Command_Line), some not-so-obvious
traces of C (e.g., Ada.Characters.Handling and Ada.Strings.*), as well
as influences from other languages (edited output from COBOL, Complex
number support from Fortran).

>Finally, Java has the general advantages of an interpreter over a compiler,
>and Ada has the general advantages of a compiler over an interpreter,
unless
>Ada is generating byte codes or Java is being compiled native.
>
>Nasser, your list of benefits of Ada would be a very valuable addition
>to some web site pointed at by the home of the brave ada programmers
>or the ada home page.

As I mentioned, I will be making my Ada/Java comparison papers available
on the Aonix web site.

Ben Brosgol
Aonix; 200 Wheeler Rd.; Burlington, MA 01803
(781) 221-7317 (voice); (781) 270-6882 (FAX)
[log in to unmask]