[cpp-threads] meta-question about Ada

jimmaureenrogers at att.net jimmaureenrogers at att.net
Tue Oct 18 21:35:05 BST 2005


-------------- Original message from "Boehm, Hans" <hans.boehm at hp.com>: -------------- 
> > I am not an authoritative source for why people do not like Ada. 
> > I am one of those in the opposite camp. Many people in 
> > academia seem to 
> > look at the military background of Ada and reject the language on that 
> > basis. The assumption often seems to be that nothing useful can come 
> > from the military, so why bother with Ada. 
> > 
> As someone who has been watching this from the sidelines for a long 
> time, 
> but was never seriously involved with Ada, my impression is that it has 
> a few strikes against it, which are mostly unrelated to the 
> actual strengths of the current language: 
> 
> 1) In my view, the pre-1995 version of the language had some 
> deficiencies 
> that rendered it unusable for many of us. (Notably, no function pointers 
> or real equivalent.) Thus many of us gave up on it before the "real" 
> version of the language appeared. 
> 

True, a reasonable equivalent to function pointers was added in the
1995 standard. That addition was motivated by needs to improve
Ada's ability to deal with C and C++ libraries.

> 2) The standard seems to go out of its way to use its own unique 
> terminology, 
> causing probably unnecessary communication problems with the rest of us. 
> 

Yes, Ada does use some terms quite differently.
Ada separates the concepts of encapsulation and inheritance. Ada packages
provide encapsulation and name space. Ada tagged types provide extensible
types supporting a single inheritance scheme. Tagged types were added in the
1995 standard. They were added as an extension of the Ada record syntax
defined in the 1983 standard. The 1995 standard did not allow the use of
calling notation common to C++, Java, and many other OO languages.

Object p = new Object;

p.method;

Instead one needed to say:

method(p);

This last problem is fixed in the upcoming Ada 2005 standard.

> 3) It doesn't use C syntax. 
> 

Ada is a member of the Algol / Pascal syntax family.
The choice of syntax family was intentional. There were good
software engineering arguments for the choice. Those arguments
are not impressive to people who only want to work in variants
of the One True Syntax. :)

I find that good C programmers can learn Ada very quickly.
My data for that assertion comes from teaching Ada to C programmers,
as well as my own experience learning Ada after several years of C
programming.

--
Jim Rogers 
Colorado Springs, Colorado 
U.S.A.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.decadentplace.org.uk/pipermail/cpp-threads/attachments/20051018/e626c03f/attachment.html


More information about the cpp-threads mailing list