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).
Mike
|