On Mon, 2005-03-28 at 19:07 -0600, Chris Nystrom wrote: > On Tue, 29 Mar 2005 00:40:53 +0200, Frank Henry <frank.henry@xxxxxxx> wrote: > > > > Now you can say what you want about java but it does its job and that > > quite well. > > But point of fact it does not do its job. I quote from and agree with John: > > "Write-once-run-anywhere. Ha. Hahahahaha." > > Is this not the whole point of Java? A safer C was a secondary goal I > think. The latter is nice, but what was really needed was the former. > > Anyway, I think the real question is why did Java fail to meet its > design goals? Java did not fail to meet its design goals. You can write a Java program that will run on anything that runs Java because Java really is designed to run on any thing. What I just said is true of Java the *language*. It is also true of C and C++ and many other programming languages. The *langauge* is portable. What isn't portable are the majority of the libraries and most applications written in the language. It is a simple academic exercise to design, and even implement, a portable language. But, as soon as the language has to run on real hardware and access real devices and services the portability breaks down. The language is still portable, but *applications* written in that language may not be. The simplest example is memory. If an applications is written to use 16 megabytes it will not run a machine with 1 megabyte. Ok, with virtual memory it might execute... but I wouldn't call it running, more like crawling. An example closer to game programming would be 3D graphics. You can have a 3D graphics API that is portable to any device with a video display. That doesn't mean programs written for that API will be *usable* on any device with a display. The display has to meet the performance requirements of the application to make the application usable. The display can meet all the requirements of the API spec and still be totally unusable. Another example would be the Java database API. Great API. Totally non-portable to an environment that doesn't have a database. > Which is bad? The concept, the design, or the > implementation? Maybe it just needs more time to mature, but Java has > been around for what 8-10 years now? I know I am being pedantic. Please forgive me. Designing a portable language is trivial. Designing a system that guarantees application and library portability is impossible because real hardware has physical limitations. What I am saying is that Java is "technically" portable but for all practical purposes programs written in Java are not and can not be portable. A long time ago I was busily writing 68k assembly language code for a strange little box I was working on when the head of marketing (also the president of the company) walked into the lab and asked me if it was possible to make the box do "blippo" (meaning I don't remember what). I thought about it for a minute and said, "sure, it could do that". A couple of months later I was covering the phones because everyone else was at a trade show (very small company) when I got a phone call from a very angry man. It seems he had paid for 4 of our boxes with the "blippo" functionality and he wanted them *now*. Of course, we didn't have any such box to send him. So, I told him he would have to call back when the president of the company was back... After a few minutes I realized that the same guy (the president) had asked me a lot of questions like that. So, I went into his office and tried to check the sales files. The files were locked, but engineers know how to use tools and locking desk drawers are only held on by a few screws. Engineers understand screws and that technical knowledge coupled with a screw driver and ten minutes got me into and out of the files with no visible marks on the desk. It seems the guy had sold, or tried to sell, a box with every feature he had ever asked me about. There was a good 5 years of development needed to meet all his commitments. The punch line is that the company went broke, he barely avoided jail for fraud, and I learned an important lesson. Never tell marketing people the truth, always direct them to your boss. What does this have to do with Java? I can just imagine that one day the Java team was having a meeting with upper management and the head of Marketing was there. He asked, "So... what you are saying is that with this language you can write code that will run anywhere?" and Gosling said something like "Well, yeah... theoretically...". And the rest is a marketing blunder like the world hasn't seen for a very long time. Bob Pendleton > > Chris > --------------------- To unsubscribe go to http://gameprogrammer.com/mailinglist.html