Bjarne Stroustrup said of Ada in a recent interview
> I remember almost despairing of learning Ada because
> the Ada people I listened to were busy impressing each
> other with how advanced their understanding of Ada was
> and how fantastically complicated [the] cases they
> could handle [were]. I thought "if that's what it takes
> to understand Ada and use it, I'm not sure that I want to."
> Then, I decided that they were just showing off and
> things were simpler than they appeared.
With his on-again, off-again appreciation of Ada,
Stroustrup is an interesting case study in ambiguity.
His book "The Design and Evolution of C++" reads like
an anti-Rationale, philosophically siding with the
common man/programmer against higher authorities (read:
the DOD?) who might want to -- horror of horrors --
*restrict* us, the cowboys, the real programmers
who don't eat quiche or crow, with tight typing,
"fascist" language constructs, error messages (c'mon!).
I mean, the very idea, the chutzpah, of saying that the
goal of C++ is to make programming "more enjoyable" for
the "average programmer", the regular charlies, the
joe-six-packs -- Mr. Stroustrup relishes the gall of
this statement and defends it touchily in his book,
which should be read by all Ada specialists, if for
no other reason than to hoot.
Just look at the back of the paperback edition at his
picture, the jeans, the casual shirt with no tie,
sitting in a cubicle in front of a Unix workstation,
a true blue-collar language designer. This is a man
manifestly without pretensions, a man you can trust
with your bit bucket and self-esteem. One of us.
Joe six-pack. In his book he flaunts his design
'principles' in the teeth of good sense, reeling
off his language design decisions like a drunken
rejoinder to the stuffed shirts of computing
history. Self-esteem. There's a not-so-subtle
flattery in the book and in the language itself --
you, the workaday coder, are in control. You call
the shots, it's your ballgame, C++ trusts _you_
in a way that no-one else does.
But then there is the ambiguity. Adding more
type-checking features to the language, trying
to eliminate certain unsafe features (and adding
them back when his public complains too loudly),
borrowing Ada and CLU features, bad-mouthing the
C pre-processor. Insisting that warnings be
generated in some cases -- when he failed to
convince the common coders around him that these
cases should be considered errors.
This root sense of uneasiness is manifest in every
part of the book and more importantly in the language,
a welter of compromises that lacks the dignity of
excuses like "we made a number of `engineering
tradeoffs`" (laugh track, please). Take C++
namespaces -- please (haha again). What a mess --
open namespaces, I mean really. If Jean Ichbiah
were dead, he'd be turning over in his grave --
he could barely abide the concept of child packages
for Ada 9X; what would he have said to "open packages"?
And the conceptually related feature, "friend"
functions. They should have been called "enemy"
functions because they breech the information hiding
barrier. Didn't anyone at AT&T ever read Parnas?
The laughs keep a-comin' -- just read the book.
Not to say that C++ has made no contributions to
programming. But I believe I can say that while
Ada built an cathedral on the foundation of Pascal,
C++ has turned the puddle of C into a swamp, so
much so that we can now consider C to be a _safe
alternative_ to C++ -- probably the most ironic
result of the 90's in the field of computer
Unfortunately the toothpaste is out of the tube,
and now that computer programming has become
a mass culture phenomenon, its evolution will
follow the same course as that manifested in
other mass activites, like movie-watching or
music appreciation. Ada is the Ingmar Bergman
or the Claude Debussey of computer programming,
but the common man watches Steven Spielberg and
listens to Metallica or Garth Brooks. And
programs in C/C++.
[log in to unmask]