On Wednesday, 15 October 2014 at 07:27:38 UTC, eles wrote:
In 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.
