Dated, but nonetheless relevant, remarks courtesy Bjarne Stroustrup:
Is Java the language you would have designed if you didn't have to be compatible with C?
No. Java isn't even close. If people insist on comparing C++ and Java - as they seem to do - I suggest they read The Design and Evolution of C++ (D&E) to see why C++ is the way it is, and consider both languages in the light of the design criteria I set for C++. Those criteria will obviously differ from the criteria of Sun's Java team. Despite the syntactic similarities, C++ and Java are very different languages. In many ways, Java seems closer to Smalltalk than to C++.
Much of the relative simplicity of Java is - like for most new languages - partly an illusion and partly a function of its incompleteness. As time passes, Java will grow significantly in size and complexity. It will double or triple in size and grow implementation-dependent extensions or libraries. That is the way every commercially successful language has developed. Just look at any language you consider successful on a large scale. I know of no exceptions, and there are good reasons for this phenomenon.
(The paragraph above was written before Java1.1. I confidently predict that Java will acquire a template-like mechanism and improved support for concrete types. It simply has to do that to be reasonably complete. In addition, it will also undergo many minor changes - mostly extensions. Later still (fall 1998), I found a proposal from James Gosling for adding concrete types, operator overloading, and support for numeric computation to Java: The Evolution of Numerical Computing in Java and a debunking of some Java myths by W. Kahan, UC Berkeley, One of the world's leading numerical analysts: How Java's Floating-Point Hurts Everyone Everywhere).
I find most of the Java advertising on TV and in print inaccurate and offensive. Denouncing all code written in languages other than Java as "contamination" is insulting to programmers. Suggesting that all "legacy code" should be rewritten in Java is wildly unrealistic and irresponsible. Sunsoft and its followers seem to consider this kind of bombast necessary to fight "the evil empire of Microsoft" but insults and hype simply drives programmers who prefer to use a variety of programming languages into the arms of Microsoft. |