Java and the Internet PC
Some people argue strongly against the idea of the Internet PC. We haven't heard so many misrepresentations and misreadings since the last presidential election. Your faithful servant tries to straighten things out using logic, reason, and sarcasm.(2700 words)
There's a lot of unclear thinking going on when it comes to both the Java programming language and the so-called "Internet PC" that Java makes conceivable. Shallow thinking, a lack of understanding of the technology, some power-user bigotry, and self serving on the part of industry rivals all contribute to the noise level.
Let's enumerate the criticisms of the Internet PC (or IPC, or Internet client, or Internet Toaster, as our story in this issue calls it) and deal them what I intend to be fatal blows.
It's just a dumb terminal. Wrong, and this mistake isn't helped by people calling the machine an Internet terminal. A terminal does no local processing (except keyboard handling in some cases and display management in others); programs run remotely and the terminal is merely a human interface device. The Internet PC, as envisioned by its fans, is enabled by the rise of client-server/network computing in which processes take place on multiple devices on the network, in addition to the user workstation. With the Internet as the network, and highly compact, highly modularized programming made possible by distributable languages like Java, the concept of distributed computing takes on new dimensions. Nobody's suggesting the Internet PC be a terminal that just displays what other computers run. They're suggesting that users can download programs as and when they need them, instead of having to store everything locally. This is an extension of what most of you are doing on your Unix networks right now -- on my system, only the operating system is stored on my hard drive; everything else I run from various servers on our local network.
It's a reversion to centralized computing.
Good grief, are you willfully ignorant? If the Internet PC concept is centralized computing, so is client-server. Why do users dislike centralized computing? Because some people hate only being able to run software their mainframe lords allowed, and love being able to buy and use any software they like, without permission from MIS. When the Internet PC idea is fully evolved, such people will be in pig heaven -- they'll be able to choose software from the whole Internet, thousands and tens of thousands of servers, uncountable software modules coming out of their ears. If this is a return to the slavery of centralized computing, well, slap the shackles on me.
Internet connections are too slow -- nobody wants to download megabyte programs every day before they can start working!
I agree that nobody wants to download bloatware over the Net. Which is why Microsoft's claim that Visual Basic and OLE will form a rival basis for distributed computing to compete with Java is laughable. (For that matter, I am tired of waiting forever for multi-megabyte Microsoft word processor to load from my local hard disk!)
Java changes the programming model, making the prospect of downloading software for day-to-day work a cool idea. First, it produces highly compact code. Second, it's object-oriented, making modularization of programs feasible. So while people will indeed not want to download Microsoft Word even with T3 lines, they will perhaps download simple word processors and spreadsheets, and if they need an extra feature from the usual bloat checklist, download an additional small module to get just the thing required. They will also download viewers and single-purpose discardable applets, some of them automatically in the course of working over the Internet. (Here's a graphics file I want to view, but I don't have anything to read its brand-new format, but fortunately the network knows that -- exchange of info between applets on both systems -- and quickly downloads the necessary viewer.)
Also remember that interpreted code is always smaller than the same code compiled.
If Java and its rivals cannot in the end produce such compact, modular code, then the whole idea of the Internet PC collapses. Java is the enabling concept.
Java is interpreted, not compiled, so apps will run slowly.
Apples and oranges. A line of code can execute more slowly interpreted than compiled (but not necessarily, nor is speed of execution always the important issue), but as I just said, Java programs are supposed to be much smaller than equivalent code in C or C++. So while an interpreted 100K program will often run slower than a compiled 100K program, an interpreted 100K program can run faster than a compiled 30 megabyte program. Or more aptly, an interpreted loop that is a handful of lines long can run just as fast as a compiled (and often unoptimized, especially on a PC) loop that's hundreds of lines.
In any event, on-the-fly partial compilers on the client can solve performance problems that might arise. It's possible to build compilers that sit in memory and watch an interpreted program execute, identify portions that would benefit from being compiled, compile them on the fly, and give you the best of both worlds.
Power users won't go for it.
So what? This is one of the stupider objections, for several reasons. I realize power users are gods among us, and nobody else really counts for anything, but seriously, folks, there are more people who aren't power users than people who are. Power users think the rest of us are worthless because we don't want to shell out $3,000 for a machine that will do everything in the world, most of which we don't want to do, and run bloated overfeatured word processors whose commands we can't remember because we don't use them that often, and deal happily with CD ROM driver problems. I ran into this same bigotry a few years ago when we were launching Dan Gookin's "DOS for Dummies" at IDG Books -- PC-savvy critics were convinced people who were ignorant about PCs would of necessity be ashamed of themselves. Even when "DOS for Dummies" became a publishing phenomenon, the bestselling computer book of all time, they still insisted people were buying a book that insulted them. This is a PC-centric view so intense there's no reasoning with it. To such people, there is only the full-function, general-purpose computer -- which can never be too powerful, too fast, or too full-featured.
But real people use single-purpose computers all the time, even ones underpowered by Z80s and 80286s -- in their cars, their microwaves, their TV sets, their hotel door locks. Nobody argues that a door lock needs a Pentium and 16 megs of RAM or power users won't unlock them. Some versions of the Internet PC are just such limited-purpose devices, intended for specific jobs like browsing the Internet, doing word processing, doing schoolwork, playing games. Plenty of people own $150 special-purpose gameplaying devices called Sega's, even though a $3,500 PC can (with extra gear) be outfitted to play better, faster, and in greater variety.
Half the buyers of home computers insist on the most powerful products not because they know what they're doing but because PC power-user journalists tell them to protect their investment by getting the latest and greatest so it will last two and a half years before becoming completely obsolete, rather than only one year for a cheaper system. That after all is both the glory and the shame of the general-purpose desktop computer -- it can be upgraded endlessly; and it must be.
If customers honestly thought they could spend a thousand dollars and not become obsolete overnight, they would. To believe otherwise leads to foolish behavior. Like back when Apple chief John Sculley was being pressured to lower Macintosh system prices, so he released a thousand-dollar Mac so pathetically underequipped that it could hardly boot, and when it didn't sell, he claimed this proved customers "don't want thousand-dollar computers." No, John -- they don't want computers that don't work. Offer them a real Macintosh for a thousand dollars and see what happens. What a dope!
OK, that was uncalled-for, but it makes me mad.
And here's a little hidden demographic bomb that's about to go off under the existing paradigm of personal-productivity computing: In 1996, the first of the baby boom generation turns 50; I am one of them. I was of the young generation that discovered computing in the 1970s, wallowed in it in the 1980s, and now I've got news for you -- as the 1990s come to a close, those who played with computers in their youth find they have important other things to do, like run their business and get product out the door. You find you have flagging interest in playing around with poorly documented, hard-to-install, quirky software of unclear purpose. Men who at heart were really just boys playing with toys and making a virtue of it, come to find computers are tools; and quirky tools lose their charm in time. Expect a growing demand -- from aging power users -- for products that do something specific with a minimum of fuss.
Nobody's going to buy a separate computer just to surf the Internet.
Nobody has to, you nit. Power users can keep their precious PCs; distributed computing works just fine even on a Pentium. The new computing model Java and the Internet makes possible simply expands the options, allows for a new relationship between hardware and software, and between hardware and the distribution system for software. It exploits in a giant forward leap the potential of worldwide networking. But it closes off nothing; I'll keep expanding and upgrading my Pentium PC at home because I myself am a power user, and I'll climb on board the Internet-PC bandwagon too, from the safety of my fat old standard PC. I can afford it and I can justify it. Now those who can't afford it or can't justify it have new options. What's wrong with that?
And yes, people will buy separate systems for separate needs; they do so now, with PCs, pocket datebooks (computerized or paper), Nintendos, automobiles, airplanes, and ATMs.
What's really wrong?
The objections I cite above are not valid, but that doesn't mean the future of the Internet PC or of Java is assured. What stands in the way? What could potentially kill the golden child in its crib? What has to happen before this vision bears fruit? Here are some of the potential problem areas.
Microsoft and others could move to Balkanize the concept, as did the mainframe companies to Unix, confusing things with endless feuding competing standards. Microsoft is already trying by extending Visual Basic and OLE as rival methods. This shouldn't work because Visual Basic produces fat code, and OLE isn't object oriented, and Microsoft just started working on Internetting their products (because Microsoft always announces a product as they start work on it, rather than when they're ready to ship it) so, based on past performance, it should take a few years before they release something decent. Besides, as long as your browser has the Java interpreter, or has plug-in capability so you can add anything you want, Microsoft shouldn't be able to lock people into choosing one or another system.
Lack of mill pricing. One model of downloadable, executable content is to charge people for use, like the power company (five cents a kilowatt hour) or the telephone companies (ten cents a minute) or the online services (five dollars an hour). Being able to charge small amounts, even fractions of a cent (a mill, or tenth of a cent) where appropriate, is an important element in building a viable industry in this new paradigm. We not only have to write tons of Java applets, we have to figure out a new computer software distribution and chargeback system. This is not a joke. Thomas Edison invented the lightbulb, then joined with investors to invent the generator, the centralized power distribution network system, the eletric power meter, and the billing system. Only then did the lightbulb invention turn into a profitable industry. This industry needs, not just an inventor of lightbulbs, but an Edison to invent an entire system for creation, delivery, and billing for the computing grid.
Hype backlash. The press is currently sold on the underlying concept of Java and many of its possibilities. They seem to recognize there's something real and important there. Every single publication in the United States, except possibly sewing magazines but I wouldn't swear to it, has written one or more prominent articles about the Java phenomenon -- the television and radio news networks announced the Microsoft-Java deal, for God's sake! But the press shallow and excitable, and by February or March, when all the monthlies with their long lead times have caught up, they'll get bored. When the world isn't transformed by March 15th, they'll start writing stories about how Java is overpromised, the Internet PC was a joke, and Microsoft is in no danger. If we're unlucky, their horserace mentality will discourage companies from investing and programmers from pursuing lengthy projects.
What must the Java Products Group do to ensure Java survives this period? -Market the product and concept - really market it, not just continue the terrific PR-style marketing they've done so far. Sun, an engineering company, has in its upper ranks a hidebound distaste for spending real money on marketing, an attitude that could prove fatal in this wider, wilder market. Sun must tell the Java story continuously, in all directions. Pound on the vision without letup, especially during the dark days to come. -Invest in the tools. Every day saved in getting good tools into developer hands is important. Fortunately, Sun is said to have a terrific skunkworks development team headed by one of the best managers in the company, Jon Kannegaard. -Support Java developers across the board, from ISVs to corporate developers, hackers, students, interested parties and influencers. The Java home page has been recently redesigned, to good effect; a developer program is in the works; and a developers conference has been announced -- all good first steps. But there's almost no limit to the amount of information that could profitably be delivered to interested parties, to the benefit of Java's development and acceptance. Sun is lucky: Java is a topic that draws intense interest, especially from computer professionals. Every Java story we publish in SunWorld Online, for example, gets top readership numbers, and even back-issue Java stories attract new readers month after month. Sun must seize the opportunity to exploit this deep interest.
About the author
Michael McCarthy is Editorial Director and Publisher of SunWorld Online and President of Web Publishing Inc.
If you have technical problems with this magazine, contact firstname.lastname@example.org