Post by eles via Digitalmars-dIn defense of C++, beyond its C roots & compatibility, it also
have been the language that made the mistakes useful for the
other languages. That is, Java and C# capitalized on C++'s
mistakes by simply not repeating them. Of course, mistakes are
obvious only after they are made and, as such, C++ was in the
weakest position, just like any pioneer.
I guess you could say that, but the reality is that C++ has been
considered a bad language design from the start in academia. C++
wouldn't have had any chance without full C compatibility.
C++ is one more proof that installed based and gradual adoption
in combination with supporting "The Next Big Thing" (OO) is the
easy path to dominance. You could always defend using C++ by
saying that you used it as mostly C with some bells and whistles
(such as explicit inlining, overloading, vectors, complex numbers
etc), so you did not have to learn C++ to start using it if you
knew C. (Objective-C requires much more effort from the
programmer)
Java primarily capitalized on educational institutions having a
positive attitude towards SUN as a company. SUN was run by true
engineers. In addition Java was marketed as a language for the
web (which was hyped in the mid 90s) so educational institutions
got what they wanted:
1. A language that students would be motivated by, being able to
run programs in web browsers (which didn't turn out to work very
well in reality). It was common for universities to use clean
languages that nobody in the real world used.
2. A language that was simple, safe and had a garbage collector
and provided all the mechanisms needed to teach CS and OO (Java
was as close to Simula as you can get).
3. A language for which many educational books were being written
(important when you select a curriculum).
Once you get educational institutions to force feed students with
a language you win. I am not sure if Java would have survived
without it.
For some reason Microsoft did not make that strategic move until
much later. I think Bill Gates was the reason, MS pushed Visual
Basic too much to be taken seriously⊠So eventually they had to
create their own incompatible "Java" (C#) in order to keep
collecting Windows-tax in the business environment.