"They all laughed at Albert Einstein.
They all laughed at Columbus. Unfortunately,
they also laughed at Bozo the clown."
And then the King Leered...
By Vijay Mukhi
Every once in a while, the structure of technology has to run through a cataclysmic dishwasher. Suddenly out of the magenta, a virgin idiot-proof idea wreaks a radical metamorphosis and the big, bad world gawks at it, holds it high on a virtual pedestal like the neighbour's puppy and sings paeans to it until a whole new regime of idiots comes along. Then there is something else, something else and something else. And wait up, don't skip that tiny, little something else in the corner. It just might change your life...
In a world where you've got to be careful what you wish for (for you might wake up in pink pyjamas one dingy morning and find that you've got it!), Java is the latest dropping from the technoputing dishwasher. Extolled by self-styled pundits as a Web tool nonpareil . Embraced by the 'like wow' companies harder than the cardboard cutouts of the cyberbabes with peanut polythenes pinned across their bosoms. The concerned cyberpuppies and bar-stool cultural critics are already hoping impressionistic tykes to join tattoos and sneakers in the pantheon of this dubious globe-spanning megatrend called JAVA!
While its name might suggest one of those weak puns that comfortably pass for pseudonyms these days, in a hideously overcalculated effort to sprinkle the missing 'creative touch' on the digiteratti, Java is actually (and accidentally) just about as much fun as a plastic snap-together dragon from the bottom of a cracker Jack box that your grandma gave you for the fifth birthday. And it is catching on at a rate that could make wild crabgrass blush. Nothing trumpets its arrival more stridently than the episode of 28 heinously high-heeled heavyweights like Oracle, Borland, Silicon Graphics, IBM et al being smitten by it, and smitten bad enough to volunteer their oddly enthusiastic endorsements. But that's only half the story - the other half is Microsoft, the mammoth wheelbarrow pulled by the divine Gates, playing the hands-up after being waylaid by some-goddamn-company-in-a-goddamn-corner-of-the-world. After a spell of haplessly looking out of Windows, they too decided to follow the tried-n-tested aphorism : If you are being chased out of the village, wave a baton and make it look like a graceful parade. On another foot, however, Netscape Incorporation - the most trailblazing eligible bachelor around, prefers to play safe and wager its worth on making hay while the Sun shines (pun intended :).
In case that sounds like a gross exaggeration, try keying in the Midas-word Java as a query to your pet search engine, check out the number of hits sniffed out and tell us if we are going overboard.
Well then, welcome to digital blackhole, only a slightly modified to be called Java. The punch is : it sucks more catchy things than light.
Java - The accident that happened accidentally
"Revolutions are dignified accidents."
To get maximum attention, its hard to beat good, big mistake. Java is a royal case in point. In more ways than one, it is like Colgate oozing out of a tube squeezed too hard. Courtesy : Internet, the amorphous blob of bedfellow computers networks. Only the tube here is the market with the pressures thereof lending absolutely unnecessary and ill-timed impetus to the release of a product that was still in puberty. How else do you expect something that was intentioned to pop its clogs inside electronic appliances to end up in the programming languages rink. All that the folks at Sun Microsystems perhaps expected when they announced Java last summer was to devise a language that could traipse across unfriendly platforms, for that was the major bottleneck faced by networking software. It was neither designed for pentiums nor for the rather spooky vistas of UNIX, but for the gee-whiz gadgetry that only existed in the minds of the people who were designing it. But it has since cobbled into a whopping multitude of classes and libraries, and then some.
Picture this : You get up with the crack of dawn, because your alarm has croaked its designated signal. Your toaster that is connected to some sort of an intranet, downloads information from the alarm clock that it has to pop up a couple of slices of bread and tell the coffeemaker to whiff up a nice, warm mug. The VCR in the meanwhile has to rewind BladeRunner II or the movie last seen using it, while the thermostat in the AC would be asked to shut up.
If anything, that sounds like a scoop straight out of an H.G.Wells bestseller. But the mediated role of Java indeed was electronic consumer products. Until the whole project turned over a new leaf, altered its very rhizome and plain swept Sun off their feet (not to mention their schedules and deadlines). Infact, the whole Java episode was a frenzy in time. Even today, Sun is too busy mopping the floor to turn the faucet off. It is not entirely wrong to say, therefore, that what we see as Java today is not The Java but a mere foretaste of what we are going to thrive on half a dozen months later (which is true literally as well, since the final version of Java is not yet out, at the last check).
That is to say that from a certain perspective, Internet served as a retroactive agent for Java rather than the loyal crutch it has been touted as. Wouldn't Java be a trifle healthier and better as a language if it was born in normal nine months rather than being snuffed out as a caesarean case that scraped the baby out in three weeks!
Nevertheless, it gives a strong reason for the rest of us that if this is what the accident version looks like, wonder what the real thing would have been. Ask the cook who made his best custard-pudding while trying to experiment for the first time in the kitchen...
Java - The least common denominator
"The nice thing about standards is that there are so many of them to choose from. "
While Java serves up a considerable cornucopia of widgets in the form of AWT (which gives a developer a free reign over the grotesque underpinnings that pass for 'killer' interfaces), it diligently dispenses with the totally inessential cosmeticisms. It had to be architectural-neutral after all and the people who design the architecture make sure theirs is entirely unique, like everyone else. Take in way of a (bad) example, UNIX uses XWindows for the (rather overabused) GUI. The way in which a button with an image on it will be displayed in XWindows might not really jibe with the way Windows 95 displays it. Different OS, different functionalities. Translated, that means that Javamakers had to take care to be in the right ballpark when it came to platform-independence. A Mac is not really the smartest of 'em all when it comes to concepts like multithreading, while Windows 95 sports it as one of its key features.
Let us say, for the sake of argument, Sun today shows lack of discernful thinking, does deep research in to the innards of Macintosh machines and digs out a feature that, even though peculiar to that variety of Macs, is interesting. Then they decide to incorporate a feature that will help program better on that Mac. The development of that feature or its incorporation could take eleven months, by which time that Mac becomes more than obsolete. What is the point in breaking heads on that kind of moke work? (not to mention the electricity and the pizza bills to be footed).
As another simile, let us take a Mac and Windows 95. Let Windows 95 be a black and white television while a Mac rightly being a colored one. Since the basic groundwork is accomplished, I can work on a color television, i.e., Windows 95. For making use of the color TV, the Mac, I will have to add a few auxiliary features. That is the very essence of the huff-up about Java not being supported by the beautiful Macs, as of now. Have you tried the Roaster , though?
From a fairly prudent perspective, our environment goes a long way in conditioning the way we live our lives. For what ulterior motive would one bother a to give a guest a glass of water other than it is simply a part of the generic courtesies that one has been brought up to live with? It is the place where we work and the place where we breathe that tempers us. But again, different people live in different environments - the way you live might be very different from the way I do. If I intend today to make friends with just about anyone, regardless of the way he has been brought up, there are two ways I can do it. Either I can be efficient enough to adapt myself to him impromptu, or keep myself at a low intellectual so I can get along with everyone.
Drawing the analogy, the different people are the diverse Operating systems. The person trying to make friends with all and sundry is Java. In the light of the conflicts of various platforms, Java is concocted at a minimal, lowest-common-denominator level. Therefore, it was only a fair idea that features like bitmapped buttons, which are handled differently in different systems, be scrapped or adjusted in a way cognizible by any system. Therefore it has an array of functionalities that are broadly supported by any platform. The basic scaffold is ready, the groundwork is done. It is the building that has to be erected.
Java - The Rhino-skin
Spying on a neighbor on the web might be a mass-participation sport, and the most widely-acclaimed timepass, but unfortunately Java does not seem to like it (yawn!). Might sound like fresh pugcrap, but Java has punctilious security features. While Java and C/C++ spring up suspicions of illegal liaisons and isomorphism, Java is a little sharper when it comes to safety. C and C++ sport a discreet access to naked memory (through pointers, for the people in the know) and leave leeway for viruses to germinate. Java, on the other hand, is not only virus-resistant, it is entirely tamper proof.
A Java applet that comes on to your machine cannot turn into a virus because it can not write to your disk in the first place. The class file or the object file that is generated during compilation has its hurdles to cross. There are staunch rules about the things that an applet is permitted to do or otherwise. As a second check, there is browser verification. When some data is to be transferred, something called an RSA signature is slapped along with it and passed along. Along the teleroute, nobody can tamper with even one byte for this data is checked for its RSA signature by the browser. Which weeds out any unwanted guests along the way.
The question of viruses is a significant one but it is small against that of tampering. Java gives the solidarity of the data not being allowed to fall into the wrong hands, and if it does and Mr. Wrong Hands does something with it, Java makes sure the subverse form does not screw up my hard disk.
The only tangible drawback in such secure systems is that there will be a lot of hackers out there who will now feel challenged to burn the midnight halogen (midnight oil went out with the Gulf war) and try to crack the security wall offered by Java. If there was no security, everyone would feel a little too trite to create viruses thinking that the whole world must be working on one. And that in its own weird way, would ensure security. Well, to each his own.
Java - The Paradigm Wringer
- The computer gets hollowed out
"Its not the network in our lives, its the life in our networks"
His Majesty of the desktop empire, Microsoft, has had his tenure. The elusive throne now belongs to networking, where the software from the computer ebbing away ever so swiftly. We have had enough of MS Bloatwares which used to give us 3 trillion and 56 functions, the ones never being used in the whole life of the software being 3 trillion and 49. Before you could invent a use for a great dormant feature in the package, the next version would peek in through the back door. And of course, you were human. You would swoon, drool and slurp. Finally falling for the latest version which offered an equally, infact, a dozen more useless functions. Notwithstanding an arm and a leg you had to pay for it. So when Nicholas Negroponte weighs in on the subject of MS's software archetypes "Every time Andy Grove (Intel) makes a faster chip, Bill uses all of it", we know he speaks from experience-accrued wisdom.
Great thing, Java, to come along and reverse all that. Its prowess lies in the idea of not having any software on your machine. The marrow is on some other computer in the world (popularly labeled in the digital jargon as a "server"), you just have to log on to that machine and download the software, use it and bid adieu. That portents that a normal PC that we use will be a dumb terminal soon, with little or no intelligence to call its own.
- Cheesecake programming
The entire structure of software programming will be like cheesecakes. You get the program in small bits, but each one worth it.
- Savvy Web Pages
An applet is a test-tube application, a miniature program. It can be transferred over the Internet just about as comfortably as text files are lugged around today. An applet is included in an HTML page, which is nothing more than an ordinary text file with a few flaky tags. For instance, the tag <b> tells my browser that a word following it has to be displayed in Bold, <img> tag forewarns that an image is on its way etc. But as of now, all these pages have been deadpan, static. Java allows you to incorporate real time interactive audio-video content, animation and instantaneous updation in these Web pages. Imagine : instead of just getting soaked on the press release of Madonna's latest pop dish-out, you could actually see her (agape) in the legendary conical gear or in some altogether revolutionary wonderbra, gyrating to the latest scores. You could get smart updates on the stock market fiascoes. Or have your company's logo animated on the page! As an institutionalized commitment to shuffling the foundations of the Web, Java also aspires to add a few muchneeded shreds of vivacity to the rather addled pages.
Instead of now having to use a whole Word 6 which brags a thousand ways to do the same thing, I can now call a small applet on my machine which performs a categorically specific task, use it, save my work and off goes the applet. Cynics might be yanked out of stupor and question the utilitarian aspects of an applet. But very much on the lines of the runt of the litter being the sturdiest, an applet is also an extremely thing.
No more Vanilla, its the cassatta world...
- The scoop : Compilation and Execution divorce
The programs that you have designed till now compile and execute on the same machine. If you are using C/C++, for example, you compile the program and view the output on your machine. With Java, the program could be compiled on a machine and then transferred. It would be executed accordingly.
- Is it fresh, ma'am ?
The goal of computer science today is to build something that lasts at least until it is built. No sooner do you get acclimatized to a particular software, than the next version of it comes out. A case in point : the whopping CD-ROM encyclopedias. There is a quasi-trend among the knowledge-freaks to discard the old CDs every two years or so to replace it with the latest to acquire the latest fact caboodle. Wise up man, there are some things that are irrevocable - things that even time cannot change. If JFK was murdered with a bullet, he can't be dead two years later by drowning in chicken soup. If edelweiss is the wild flower that grows in the Alps, it will always be a fact. If human heart has a particular pattern of blood-flow, a new CD can not afford to dismantle it and whiff up a new fangled cardiovascular theory. Despite their inability to alter even an iota of the facts that were already present and their only scoring point over the previous ones being, say, a 2% addition of information, the CDs sell like hotcakes. And trust me, cakes were never so cruel to the pocket. The price that you pay for a minuscule addition to the databank is another CD altogether.
Take Windows 95. Tongue-in-cheek retributions aside, the software has millions of users today. If its creative owner suddenly gets a couple of ideas that he staunchly believes will make the software far better, there's no earthly way, or at least no practically earthly way in which he can do it (unless those teeming millions are willing to shell out for a couple of changes. )
With a concept like Java, that's a cinch. All the 2% ornamentations to the CD-ROMs or the couple to Windows 95 today can be done on a machine lurking anywhere in the world and on the web, with interested third parties downloading it any time of the day and getting the freshest copy. That is not to say that Gates is going to do that with Windows 95. We are talking here of Java applets (and applications) that will be placed on a server. Their writer can make changes any time as many times. The next time you and me download that applet, we automatically get the latest version. So no more version headaches, no more pocket explosion syndromes (that's good news for the tightwads) and no more tiffs with your software vendor for giving you that last version...And to think that you need no more rely on the 9 o'clock news for knowing what's up with uncle Sam or what's down with the rest of the world...its right there, you plain need to find out for yourself.
Isn't that a far better alternative ?
Java - A Writer's Dough Earner
And then there is the din about some Java virtual machine, bytecodes and Pcodes, Java computer within a computer. For all practical purposes, a Java virtual machine is also virtual talk (or as an open Yankee would put it : it sucks). For there is heap lot of sleuthing to be done in case you crave to discover the reality behind those ostentatious words. From a fairly practical perspective, the Virtual machine is the various tamper-proof, verification procedures put together that make sure Java functions more than a little isolated from your ordinary procedures.
Talking about codes, well they have been an amusing source of interesting discussions spanning almost any self-respecting Java mailing list. What the hell is a bytecode, anyway. When a Java program file that ends in an extension of .Java is compiled, a .class file is formed. When the same class file is put on your hard disk, however, it is against digital religion to retain their name as class files. Accordingly, they are called Pcodes. But that's the saga when it is there on your own machine. The moment it is expected to be trolling over cables, it is fittingly christened as Bytecodes, since it is bytes that are on a tour.
A friendly advice here (and also the moral of the story) : don't read in on the cryptic combo of technical jargon. If anything, it is the skullduggery on the part of the cyber vendors, in a drive to make the innocent programmers lose some of their frisson. Or in a more politically correct way to put it, maybe it was yet another creative brain at work -- intending little more than trying to earn his daily dough.
Java - A Revenge of the Nerds?
Widely felt but vaguely understood, Java's semblance to a mass revenge of the nerds is unmistakable. It is better than a slightly more eligible successor to HTML which was so easy to use that one could sit over the weekend, yes even that motor-mouth female across the road, with enough beer and pudding stashed away in the refrigerator. Java, on the other hand, is not every hairbrain's eggnog. It takes a little more than just good intentions to marshal yourself the Java way. To achieve the kind of fireworks expected from it, a reasonably good grip over C/C++ and a bundle of creative gray cells is indispensable.
Here's the latest fear : Is the right to freedom of (drab) expression that HTML blared being snatched away from the ordinary Johnny and Jennifer? And here's the latest counter-fear : Well, if the Johnny and gang are not determined-enough, then yes.
In that light, one is given to the belief that Java portends a style-and-content inequality when it comes to designing smart web sites. While the big-wigs can afford to throw in a fair share of resources and dish out an ultra-slick site, the folks with a perennial cash-crunch could be left out quivering in the cold. That's not really true for the most part because Java, at least as of now, is freeware and any mortal soul with the drive has a free reign to implement it.
Java - The Cyber Plateau
Did you ever stop to think that you live where you live and not in the lush havens of Beverly Hills or the posh seaface condos in Miami? Its no time to begin if you haven't, though. But Java, only abetted by the sprawling Internet is a great field-leveller. As yet. It is available for free download at Java's page and that goes a long way in plateauing the socio-economic-strata bar graphs. A poor-yet-driven programmer can now safely wriggle out of monetary conundrums because he no longer needs to cry the Mississippi at lack of the right software. It is equally accessible to every one. Even a guy deep down from the backwoods of Morocco could be the next whiz on the Internet.
In way of a good example, take us. A month back in time, we were official neophytes when it came to Java programming. Today, a score of full-blown half-baked truths and a dozen Nescafe jars later, we have one of the largest and most frequently visited tutorials in the world (or we so love to believe, with good reason.) We even succeeded in enamoring a friend so spankingly, he put a Spanish version of our tutorial on the web. If that is any indication, we have got the welcome mat out there. That's pretty healthy as an enlightenment.
Not to forget the fundamental discovery that designing an applet is about as easy and as much fun as fantasizing being kidnapped at gun-point by a ravishing cyberchick. Given enough incentive and amphetamines, any Tom-Dick-or-Harry and his toothless buddy can hope to take on the digital world. Isn't that what the essence of Internet is all about ?
Java - The alternatives
If your are an ornery critic and analyst, you have probably already trailed down the alternatives to Java, if there are any, that is. Honestly, if you prefer peanuts to pizza, its okay to look for the alternatives. Otherwise, however, it is just about as availing as watching paint dry. There is a flock of some languages that pride themselves over their internet-orientedness, but they have their fair share of handicaps. Perl , LISP and Telegraphic from General Magic are the fairly well-known (if that word conveys the meaning) among the developer circles. Something called Blackbird was flashed out by Microsoft, but it does not seem to be bright enough to arouse much interest. Tickle , in a similar vein, besides being a newbie's nightmare is closer to a huge digital yawn. And the rest are better if not disclosed. Could one say ignorance is bliss?
Java - A coffer factory for Sun and gang
Whatever one decides to perceive Java as, the fact remains that it has raked in, directly or indirectly, a neat bunch of green backs and had their coffers grinning. Sun stands tall in Wall street. And much to the disdain of counter-parts on the prowl, it has already pigeonholed the company as an Internet company.
Java - The Noose for Microsoft?
Microsoft is not dead, it is just in suspended animation. They might have been caught with their pants down, but let us be fair to them. There's no fool like an old fool - you can't beat experience. But there is always a lesson to be shopped. Microsoft is feeling left out because it arrived late at the Internet bang. Gates can wax nostalgic for the times when all the other party-poopers would get up and offer a seat, but this time the party is different. No one rules the cyberdom; no one molds the Internet like measly desktop world, which is growingly becoming an emigrating empire world, which is growingly becoming an emigrating empire.
Java - America's slap-down suicide note
That's admittedly a rather skew-whiff way to put it. Yet, it is the undeniable truism and more an issue of perspective. Regardless of whether the classic tumbler is half-empty, half-full or just twice as large as it need be, technologies like Java are America's axe-in-the-foot. Java is simple and it is accessible. If anybody can write those teeny-weeny applets, we might as well have our next Bill Gates or Andy Grove from the Kalahari or the rifts of Congo. And that forebodes a danger to the superpower status that America has relished for a long while. But then again, they say Internet was a mistake in the first place...
Java - A flaw no one told you about
This is classified information. Since we are all for Java, it is difficult to disclose a flaw without alienating the folks at Sun. But between you and me, Java is so engrossing, it doesn't leave you with time for a haircut -- and that can produce spectacularly unfortunate effects if your boss was in the army.
Java - The Last clouds in the coffee
If the skeptical shenanigans are to be believed, Java might not be the perfect answer (as of now), but it raises some pretty interesting questions. For one, Windows 95 that we are working just about bears up with 8 MB and really likes 16. If you and me could have Java in our toasters, would our toasters have to flaunt a 16 MB RAM ? Here's a reflective thought : Maybe that appears to be a big chunk of memory today but might be an ordinary plaything tomorrow. Not very long ago, 16 K was a big amount. Infact, a few years back, if a guy was willing to shell out 32 K of memory, I would not think twice to marry his daughter. And, if a guy basks in that measly amount as of today, I wouldn't be a fool to believe that he has been hatching eggs for 20 years...
All said and done, there is little sense in mulling over the yesterdays, tomorrows and todays (which incidentally, are the yesterdays that you will worry about tomorrow). Java is here and is here for keeps. Our human minds have a mysterious tenet of never regaining their original dimensions once they have been stretched by a new idea. That seems rather grimly true in the case of Internet. What triggered out as a small experimental convenience is now the order of the day. Java might be a little overpampered kitten as of now, but the fullblown panther is yet to come. The last word is saved for grandma of course, whose vast skeins of computer knowledge end at the gadget's number-crunching capabilities :
"I never knew so much could be said about coffee."
Was Albert Einstein serious when he said that you don't know a technology well enough until you can explain it to your grandma...?
With inputs from Shashank Tripathi and Sonal Kotecha
Vijay Mukhi's Computer Institute
B-13, Everest Building,Tardeo, Bombay 400 034, India.