On Fri, Feb 27, 2015 at 12:44 PM, Paul Koning <paulkoning at comcast.net> wrote:
I suppose there?s always Ada if you want a clean
portable systems programming language...
Ada-83 lacked function pointers, which made it suck for systems
programming. Other than that, I got a lot of use out of it back in the
mid-1980s. They fixed that and added a lot of other useful stuff in
Ada-95, and even more in Ada-2012. My biggest gripe about it now is
that exceptions still aren't a first-class data type; the only data
you can attach to an exception is a text string. There was a proposal
to fix that back when Ada-95 was in development, but it wasn't
accepted. People kludge around that by packing other data into the
string. Of course, some people claim that there shouldn't be exception
handling at all, and that it's better for things like out-of-bounds
array references to have unpredictable results. I've never understood
how that could possibly be viewed as a good thing.
In the late 1980s and early 1990s, the C++ fanatics criticized Ada for
being a large, complicated language, designed by committee. (In
actuality, Ada was originally designed by a small team.) Over time,
C++ copied many of the features of Ada that the C++ fanatics had
formerly criticized, and also added many original features, to where
C++ is a far more complicated language than Ada. While I won't
dispute that there have been many improvements to C++, the fundamental
problem is that it's still almost a superset of C, so it's a worse
language than C because it has all of C's deficiencies and adds some
new ones.