At 12:47 PM 11/29/2004, Harbaugh, John S wrote:
>Agree that the Ada 95 tasking model (specifically Ravenscar Annex D) is
>superior for teaching real-time programming.  Not sure that is
>appropriate for a newbie programming course...

No, but when a student takes a later course to learn multi-tasking, they
can concentrate on the fundamentals of tasking, because they have already
learned the basic Ada syntax in an earlier course.

>Ada uniquely supports readable, understandable programs.  The "write
>once, read many" principle should be engrained as early as possible in
>new programmers.  Fully qualified dot naming, named and mixed
>association, subtypes, real enumerations (as apposed to named integers)
>all contribute to a mindset that values programs which read like
>structured English.

I agree with this to a point.  My one argument, though, is that people
(even Ada people) seem to ignore the use of fully-qualified names whenever
they can.  I find this "wordiness" to be one of the most useful aspects of
the language.  Nearly every time I download an example Ada program from the
net it seems to start with "with X; use X;", leading to potentially
confusing code.

>As a forced convert to the dark side of C++, I have to say that C++ is
>NOT a good language for a first exposure to programming.  The language
>is very subtle/complex (a bad combination), and most compilers are
>idiosyncratic.  Plus, look how far you can get in Ada without ever
>mentioning access types.  C++ is still rife with pointers from the first
>chapter on...

I went to school (U of Pennsylvania) just at the beginning of the C++
infection.  The first-semester teaching language at that time was Pascal,
followed by Scheme, then C and assembly during sophomore year.  We also
used some bizarre thing called "concurrent C" for our OS class.  I think
that Ada would have made that class much more useful, but I'm a little biased.

I didn't learn Ada until I graduated and took a job in the defense
industry.  I've been using it almost exclusively ever since (15 years).