How many Team-Ada people read the Byte magazine's April article? Here's
my put on some of the
information presented:
> Today, the most lively debate is over C/C++ (the standard for
commercial
> software development) and Java (the newest language to achieve wide
commercial
> appeal). It's no accident that Sun designed Java for high-level
hardware
> abstraction, rapid development, and code safety.
The way this is written, it makes Java sound like the only player in the
market
that can provide those features. Feh!
> Java programs, on the other hand, are virtually leakproof because the
Java
> virtual machine (JVM) manages memory, not the programmer. The JVM has
an
> automatic garbage collector that frees up memory not being used by
objects and
> data structures. The garbage collector eats up some CPU cycles, but it
> eliminates a huge source of bugs and crashes.
Hello. One can have GC in Ada.
> Likewise, Java stops programs from corrupting memory by automatically
checking
> the bounds of all array references. You can't accidentally store data
in the
> 101st element of a 100-element array, as you can in C/C++. Although
you can
> purchase tools that add bounds-checking to C/C++, they're not
universal.
Ada has been doing this since day 1.
> There are dozens of less-publicized safety features in Java. For
instance,
> another common flaw in C/C++ programs is poor error handling. It's
easy to
> write a C/C++ program that has no error handling at all. In Java, if a
class
> has a method that might throw an exception, a Java program must check
for the
> exception, or it simply won't compile. Of course, you can still write
sloppy
> error-handling code in Java, but Java at least ensures that some error
> trapping will be there.
Ada has always had excellent Exception Handling (Stop with the
throwing)!
> Java also requires an explicit cast if a variable type conversion
might lose
> precision. In C/C++, you can coerce a 64-bit double-precision
floating-point
> value into a 32-bit single-precision floating-point variable without
realizing
> it. Java requires an explicit cast, so you're at least aware that a
precision
Ada has always required type casting.
> error might result. This might seem like a small thing, but an Ariane
5 rocket
> exploded after liftoff in 1996 when a similar type mismatch caused an
overflow
> that confused the inertial guidance system.
Whoa now! This Ariane 5, as I remember (which could be incorrect), blew
up for
other reasons not related to type mismatch. I thought it involved using
Ariane 4
code in an Ariane 5 which weren't altogether alike. Someone correct me
if I am
wrong. The problem was not a coding issue but a design/implementation
issue.
> Perhaps the most controversial of Java's safety features is its
> single-inheritance model, as opposed to the multiple inheritance of
C++.
> Classes can inherit methods from only one parent class, not from
multiple
> parents. Java's designers believed this would reduce complexity and
yield a
> cleaner class hierarchy.
And then there is Ada........
> C++ devotees insist on multiple inheritance. However, it's worth
noting that
> 4Java actually does allow multiple inheritance -- of interfaces, not
> implementations. A Java class can inherit the interface definitions of
> multiple parent classes (in other words, the method calls), but it
must
> implement those methods itself. This protects the integrity of the
child class
> if the method implementations in the parent classes change.
Here is where I am a little weak to respond back on. It is my
understanding that
Ada is like Java in this respect.
> Java is by no means the only language to emphasize code safety.
Eiffel, an
> object-oriented language developed by Bertrand Meyer in 1988, goes
even
> further than Java in some ways. Eiffel requires methods to expose
their
> calling parameters at run time. Most other languages, including Java
and
> C/C++, rely on documentation for this purpose. Ada, a 1970s language
developed
> for the U.S. Department of Defense, contains similar safeguards. But
Java is
That's it? It makes Ada seem old and funky!
> the newest language to win broad support from tool vendors,
developers, OS
> vendors, and schools.
Too general a statement as far as I am concerned!
Thanks for allowing me to vent.
Chris Sparks
|