To: Kashish King who wrote (9669 ) 3/31/1998 9:19:00 PM From: Charles Hughes Read Replies (2) | Respond to of 10836
>>>Which is precisely what I've been telling those who claim Java is just a language.<<< Right. There is Java the platform and Java the language. To me the big accomplishment, and the most elegant of the two, is JVM, the platform. >>>Well, there are already several language running within the Java environment and they are written in Java.<<< But don't have to be. And if you wanted to do true run-time MI and full polymorphism that would be quite a challenge to write with Java. What concerns me about this is that the prejudices of the Java designers against MI and overloading may have found their way into the JVM, thus dictating the future of these features (none, in their view - they claim these are *too hard* for the average Java programmer :-) with a bit of facist programming. I have heard this is not true, and I have heard that it is. I am not qualified in the JVM to say which is true. If true, the JVM needs revision. For instance, some would like to port Eiffel to the JVM, and I think a project like that is already happening in fact. Eiffel is a very nice environment, and existed before Java. Remember that the big new feature in Java is the JVM. The rest is a selection of ideas and features from existing web, object broker, GUI class lib, 3D packages and so on that already existed. This is necessarily true for much of the functionality, because of the portability needs. Even the JVM had also been derived from 20 year old concepts. Remember, what is new here is not the individual features, but the determination to package them all in an effective, portable, standard way. It is the scope of the effort that makes Java unique. It is the portability and transparency (as in applets) that makes it revolutionary. Not the particular features of the moment. It is the determination to *do it right for once.* As we had all been talking about doing for decades. This happened to be the right time for the concept, because of the current explosion of programmable devices. The irony is that all the argument is about Java results vs C++/Win32 API on the desktop. But there is no question of the Java victory on almost everything else, from ocilloscopes to heart monitors to calculators to set top boxes to automobiles to watches to robots to .... I bet Java will take over 90% of that stuff. Tens of thousands of kinds of devices. So you might have one Windows 2000 PC in the house, and 5 Java programmed devoces, without even knowing it. >>>I think C is generally regarded as elegant by those who use it day in and day out.<<< I have used it for 20 years, and would never have called it elegant. I would call it functional, but it is obscure. It is powerful, but it is a bug-fest. Lots of C programmers are perversely proud of the difficulty of it. I would say of all the languages I have used only PL/1, asm and scripting languages were worse. Naturally I was happy that the Java designers chose it, for ease of transition for myself and other C and C++ programmers, though the slight differences can make it hard to switch back and forth between C++ and Java. >>>Java is a radical departure from C++; I disagree that it's an incremental improvement<<< I didn't say it was. What I said was that the next language need not be as great an improvement. In fact a somewhat easier to use language with a smaller, clear set of class libraries and APIs could run on top of the current JVM and would be welcomed by many. And so it will go, over and over. Now if the logical extension of all this takes off, which is the hardware with universal bytecode and api's, so that you have the machine without the virtual aspect, and we do away with the madness of each chip manufacturer making a new opcode set just to be proprietary, then you will get an explosion of new programming environments, some of them not strictly languages, to run on top of that. More visual environments, for instance. And because of the unifying nature of the JVM, you could even make regeneration of old Java programs into these new formats fairly easy. The one bad aspect of the inevitable new languages is that we all want to have our programs to last. We want to stop pushing that rock up to the top of the hill, only to have it roll down again. We see that we could then make some permanent progress in other areas. This may not happen. However, it looks like at least the runtimes will continue to run, and that is far better that the old regime where any new operating system upgrade or just a new DLL could kill your program by Bill Gate's (or HP's, or IBM's) fiat. >>>What's important is the ability to leverage your current investment and given the entrenched nature of C, C++ was a logical next step.<<< Well, this is what they chose to focus on. And perhaps this was necessary to get the whole thing off the ground. But it leaves the door wide open, as I said, for a language(s) that adheres to the JVM but has a different and better syntax. For visual programming environments. And so on. And the Web user or device user won't even know the difference when that happens. They won't (maybe) even need a browser upgrade. Chaz