From: Bob Leif To: Ron Oliver et al. The real question is what can be done to fix the process of selecting software development tools? C++ and Java are only illustrations of the problem. The long term solution is NOT to sell Ada; it is to sell statistical process control, which in turn will sell Ada. Engineering executives are supposed to make decisions on facts --not hype. -----Original Message----- From: Team Ada: Ada Advocacy Issues (83 & 95) [mailto:[log in to unmask]]On Behalf Of S. Ron Oliver Sent: Thursday, February 08, 2001 8:13 AM To: [log in to unmask] Subject: The Good and Bad News about Java (was Re: Problems with C-class languages ( wasRe: SE-book 6.ed)) I find it very interesting that the thread about "Problems with C-class languages" became so lengthy, and in particular that at the end it centered around what is obviously a very confusing semantics in Java. This confusion, itself, is quite telling. I cannot imagine there ever being such an extended discussion about any feature of Ada, even among the most novice students. This reminds me of the days I first tried to understand what this "Object Oriented" fuss was all about in the late '80s. Keep in mind that by then I had already had 2 decades of experience in the software industry and had completed both my MS (in Programming Languages) and PhD degrees in Computer Science. Most of my work to that point had been with complex concurrent and real time systems, including a LOT of work in computer communications systems. I read the books by Ellis and Stoustrup and by Lipmann, as well as MANY papers presented at one or another OOPSLA. For the longest time I was VERY CONFUSED. I just could not understand much of what I read. Finally I just sat down and implemented a bunch of "Object Oriented" stuff in Ada83 (and, yes, I DID find a couple of different ways to implement inheritance). I was very pleased at the obvious productivity and readability gains my OO stuff showed over the more traditional stuff I had written before. So what was all this never-ending hype about OO versus Object-based, polymorphism, multiple inheritance, etc., etc.? Please understand that whatever I say next about those "Gurus of OO" in those early days, I really do believe they are very intelligent, well-meaning people. It finally dawned on me that the reason I was so confused is that those "Gurus of OO" were (and are) absolutely and hopelessly CONFUSED!!! For all their intelligence, they really do not have a (pragmatic) clue about what software is all about, let alone what is the role of a programming language. They just jibber on and on about Cheshire Cats and Toad Stools. And they don't even need to do opium or marijuana to get there! So, naturally, C++ and Java syntax/semantics is very confusing. The tragic part is that most people who use it don't even know they don't understand it. They just use it, and they believe that is the way the world should be. Stop bothering them with details!! All that aside, what IS the good news about C++ and Java? As near as I can tell, there is really only one benefit of Java - the JVM. That's right, the language itself is just another C, with a few additional bells and whistle, but with no particular value (except a lot of negative value), as a programming language. The JVM is Java's only real asset. And, unfortunately, because it was implemented to implement Java, the JVM is woefully inadequate for a lot of purposes. But at least it is there and it provides a solid basis for platform/OS-independent software development. (Does anyone remember the days when "portability" was one big reason many people argued for using Ada, and the C-world people universally argued that platform/OS-independence was not important to them? I do. Later they just started billing C as a "portable language", even though that was not at all true. Somewhere in my archives I have an early version of the User Manual for Borland C++. The very first sentence in that book congratulates you on deciding to use a "portable language".) Yes, there you have it. So what is the "Good news" about C++? I honestly can't think of a thing, except, for teaching purposes, it provides a LOT of good examples of how NOT to specify a language. Then, I suppose we should give C++ some credit because it was such a miserable failure that many of its devotees quickly "Jumped to Java" when the opportunity arose, meaning we have that much less legacy C++ crap to deal with. But, in reality, C++ will likely go down in history as the greatest hoax ever perpetrated by one group of humans on the whole of society. sro P.S. Sorry for the length of this message. I'm just in "one of those moods" today. We have 2 1/2 inches of fresh powder out there, and it is still snowing. I'm looking out my window at a veritable winter wonderland. I love it! I think I'll go get my skis on!! S. Ron Oliver, semi-retired professor of Computer Science and Computer Engineering. www.csc.calpoly.edu/~sroliver caress Corporation is proud to be the U.S. representative for Top Graph'X, developers of high quality software components, using Ada. For more information, check out www.topgraphx.com. Tired of sucky software! ? Check out www.caressCorp.com and follow the links to software sucks and The Oliver Academy.