TEAM-ADA Archives

Team Ada: Ada Programming Language Advocacy


Options: Use Forum View

Use Monospaced Font
Show Text Part by Default
Condense Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
"Team Ada: Ada Advocacy Issues (83 & 95)" <[log in to unmask]>
"Paul D. Stachour" <[log in to unmask]>
Thu, 8 Oct 1998 23:04:12 -0500
<[log in to unmask]> from "Neil Evans" at Oct 8, 98 04:24:23 pm
"Paul D. Stachour" <[log in to unmask]>
text/plain (56 lines)
> Dear team members,
> I am giving a short lecture to fellow students on ADA and its uses.  I have
> a fair amount of literature on its history , what it looks like, how to use
> it, and its advantages over certain other languages (which I won't mention
> here).  But like most people, I believe everything has its pros and cons,
> its good and bad points.

Not suprisingly to many, one of Ada's many strengths is also a weakness.
That is, the Ada constructs such as:
   strong typing
   variant discriminated records
means that if you make certain kinds of mistaker,  your program will
not compile.  That means that you cannot be "sloppy" as easily.
In other words, the C programmers will be through compiling,
and busy debugging, and the Ada programmer will still be
"fighting the compiler" as it keeps telling him/her that the program
is wrong.  Managment frequently interprest this as "lack of progress"
rather than realizing this "sort-of" forceing of goodness of
design; like you giving the bounds of your subrange of integer
*now* instead of your testers trying to deduce it at test-time.

As for ignorance, I recently took a class in "object-oriented testing"
by an individual who has a good reputation for knowing what OO testing
is all about.  A good part of his presentation was in what circumstances,
and how to write readable, maintainable, efficient assertions for ensuring
the correctness of an object abstraction.  He did *not* know that Ada
already does, in the language, checking for all of the assertions
in the first 1/2 of his examples.  Nor that it does 7 of the 11 in the
second set of examples.

And he had never heard about the use of variant records to ensure
that one cannot access components of a record that have no meaning.
This need was not even mentioned in his class.
Now, seeing that there have been good examples of this in every Ada
class I've ever taken, or taught, and that all of the Ada books have
good examples, I was rather taken aback.

Yes, I too have found diffculty in communicating with libraies/
components/abstractions/Operating Systems that think that
"all the world's an int".  It is a royal pain to have a
really good abstraction, and not be able to use it due to the
low-level od the library calls.

I also felt / fell this way about calls to the OS in every langugae
on every OS I've ever used (except Multics and PL/I, where OS calls
were subroutine calls with the full power of the programming language).

Hope that this is helpful.