Home Page - 2002-07-28

...I was surprised of the so many outdated
comments about C++, like, C++ not having templates and
multiple inheritance! Only then did I realize that this article was
written in 1989, and even then Eiffel
had the features like safe Multiple Inheritance (now unanimously condemned
and replaced by Interfaces), genericity (now the template classes of
C++, and which is slated for adoption in J2SE 1.5 tiger release), Exceptions
(which I thought was there from early C++ days), Deferred classes (it is
amazing that C++ got Abstract classes only after 1989), and of course
the glorious type unification (which is ridiculed for partial implementation
in .NET and safe removal from Java with wrapper classes).

Beyond a point, we will have to grow out of being habituated to thinking
through a language, to thinking through sound Software Engineering principles.
Remember, the great C was dethroned, the invincible C++ went away, even
the now hot Java has to succumb to its design limitation some day, but
programming will still be around (maybe fully changed) in some form or the other.
Only the general principles of modularity and simplicity can be ever with you.

My hope is that the industry establishes a professional software engineering culture,
not a programming language culture based on seriously flawed and arcane languages.
The software engineering culture is not well represented in C++.
- Ian Joyner - October 1996