************************************************************** * * * CYBERSPACE * * A biweekly column on net culture appearing * * in the Toronto Sunday Sun * * * * Copyright 1999 Karl Mamer * * Free for online distribution * * All Rights Reserved * * Direct comments and questions to: * * * * * ************************************************************** Java scared me at first. The web has been so successful because HTML, the mark-up language that lets a web browser make your text look real pretty, is reasonably easy to learn. HTML began life as a quick-and-dirty hack -- something busy scientists could master in a few hours and the average computer user could stumble through in a few days. Java's not something the average computer user can learn in a few days. Java is an object-oriented computer language. It's a nudge less complicated than C++, arguably the preferred language of Real Programmers, but it's still a major step up from HTML. Java was invented by high-end computer manufacturer Sun Microsystems. Java was intended to be a universal computer language. A "write once, run anywhere" computer language had long been the dream of pretty much anyone who couldn't decided between buying Mac or IBM. The Internet and Netscape's inclusion of Java support in its browser helped give Java instant critical mass. My initial fear was Java would dominate the web, locking the average Joe out of this equalizing medium. People would be so transfixed by web pages with dancing babies and Java versions of Mine Sweeper, no one would care anymore to read home-brewed pages about the Avro Arrow or body piercing techniques. A great loss, surely. Fortunately for the vox populi, the Java dream has turned into something of a nightmare. The reality of Java today is not "write once, run anywhere" but "write once, port for everything." A truly universal Java program has to be ported about 17 different times because Java interpreters written for various web browsers, operating systems, and development environments all go about solving certain problems in "novel" ways. Like most computer nightmares, blame is laid at Microsoft's feet. Sure, why not? Java, being backed by Sun and Netscape (two major players in the early days of the net), took on the aura of a Microsoft Killer. Novell and Corel have previously picked up the sling shot and laced on the bronze greaves of the Microsoft Killer and came away bleeding money. You would have to be very creative to think up a dumber move than to take on a company with enough cash in the bank that it can go a year without revenue. Oh well, maybe Java would be different this time. Novel and Corel went after the arms and legs, the application side. Java aimed for the heart, Microsoft's Windows operating system. With Java, software development is no longer tied to a specific operating system like Windows. Microsoft does not react well when it senses its eventual demise. It fights back, using every trick and dollar at its disposal. In the early days of Java, many people in the industry assumed Microsoft would throw 300 of the worlds smartest developers on a project to create its own portable language. When it announced that it would license Java from Sun and then mentioned less-than-specific plans for "extending" the language, a few realized the battle for Java as a Microsoft Killer was over before it had even begun. The man who invented Java for Sun, James Gosling, recently accused Microsoft of creating a "divergent" version of Java. Programs written on Microsoft Java either won't run or won't run well on any other platform. Since it is Java's theoretical universality that makes people put up with the generally crappy performance, it becomes pointless to write Windows applications in Java. You may as well write in native C code. While it's fashionable to blame Microsoft for all of Java's problems, developers themselves have a laundry list of complaints. The Java Skeptics page at ourworld.compuserve.com/homepages/Stuart_L_Hodgins/jskeptic.htm gives one a good overview of many of the non-Microsoft inspired problems. In summary, developers view Java programs as slower, prone to crashing more, and the language limits one to fewer features. The Java apologist side can be viewed at www.disordered.org/Java-QA.html. Many of the answers to the criticisms amount to "this problem will be solved in the not- too-distant future when everyone agrees on something." The problem is, as developers have come off the Java high and are waking up to its bitter realities, Java's future now depends developers actually believing the language has one.