February 26, 1996
In some future game of Nerd Jeopardy, the answer under Dead Programming Languages for $400 is: "This language from Sun Microsystems revolutionized the Web but was never actually used to write any commercial programs." The question: "What is Java?"
Java has performed a vital role already. It has focused the world's attention on the ability of a tokenized language to run across the Web--to be interpreted and executed locally, regardless of platform. Java has served admirably in setting forth the spec. The demos are great. It's absurd, however, to expect significant numbers of people to create content in such a low-level form as C++. (You'll recall the popular description of Java as "C++ minus the guns and mace.")
Difficulty is only one of the prices you pay for Java's portability; the other price is performance. Portable, tokenized languages are nothing new. Perhaps you recall UCSD Pascal, which ran--slowly--on virtually every popular machine 15 years ago. Some good, significant applications were written in UCSD Pascal. They were either ported to a platform-specific compiled language or they died. Portability is important to the vendor, who wants a single code base; it's meaningless to the user, who pays the bills.
Java has benefited from the progress made in languages over the past decade, but interpretation is still slow. Sun understands the importance of performance. They're even proposing CPUs that execute Java directly. Is this platform neutrality or a Trojan horse? In the absence of Java-specific hardware, we'll either need platform-specific compilers at the server end or client-side dynamic compilers that speed the execution of Java tokens.
Just as Borland's Delphi creates Pascal code, we can expect similar point-and-click application builders to produce Java intermediate code, which can then be compiled for platform-specific execution, or dynamically compiled on the platform side. Borland is still the technology leader in dynamic compilation, and I expect it to take a leadership role here. At some point Microsoft will weigh in with a version of Visual C++ revamped to put out Java code, but Microsoft's real goal is to make Visual Basic everybody's Web language. Performance is an issue here, and fast code isn't exactly VB's strong suit. For content creators, VB is also too difficult. The future is in authoring tools that let you drag and drop Web page elements, specifying animations, actions, and database access by simply selecting menu choices.
Some of these solutions will bypass the Java approach entirely. Macromedia's Shockwave (www.macromedia.com) is already a functional example of how a multimedia authoring tool based on scripts and objects can be retuned to play over the Web. As these tools get faster and easier, users will wonder, quite rightly, why they should bother with Java.
Platform neutrality is important in today's Web environment primarily because 25 percent to 30 percent of the clients are still Macintosh. The number gets smaller every day, however, as the PC juggernaut of inferior elegance but superior cost benefit continues to roll across the landscape. Macs aren't going away any time soon, though. Also, some of the non-Windows-based set-top boxes and Internet appliances might just gain traction in the coming year.
When it comes to content, the most important thing that programmers can do is put themselves out of the business.
Bill Machrone is vice president of technology for Ziff-Davis Publishing Co. He can be reached at wmachrone (MCI Mail) or 72241,15 (CompuServe).
Copyright (c) 1996 Ziff-Davis Publishing Company. All rights reserved. Reproduction in whole or in part in any form or medium without express written permission of Ziff-Davis Publishing Company is prohibited. PC Week and the PC Week logo are trademarks of Ziff-Davis Publishing Company. PC Week Online and the PC Week Online logo are trademarks of Ziff-Davis Publishing Company.