The riddle of 10 candles: If there are 10 candles and 3 were blown out, how many are left?
This semantic puzzle, which appeared on a free English language help Website, is a Zen koan, emblematic of the age of Java (i.e., the current network age, which Java helped to birth, diaper, feed, and proctor). With Java's official debut on May 23, 1995, along with the Internet-ready release of Windows 95 and Netscape's IPO later that same year, the stage was set for a 1996 leap in aggregate economic productivity increases that has yet to abate, dot-bomb notwithstanding. So now it's Java's birthday. As we blow out 10 candles on the Java cake this year, celebrating a decade of WORA (Write Once, Run Anywhere), VMs galore, and bytecode, perhaps we can reflect on the changes our passions have wrought.
The history of Java is well-documented. With hundreds of books, thousands of articles, hundreds of thousands of Websites, millions of developers, and millions and millions of lines of code, the story of the Java platform is probably one of the most well known and remarkable in the annals of programming history. As such, there is no need to recapitulate the short but eventful life of Java here (although a canonical list of Java historical Websites and articles does appear in Resources). But rather, if we consider the 10 years of Java with a candle motif, it might be of some value to cite a development or two per candle as we extinguish them all in celebration—something of a top 10 list of impact craters left in the wake of the Java asteroid that so deftly disrupted the software ecosphere some 10 years ago. In the spirit of top-10 lists then, let's do a candle countdown, each candle representing something that Java pioneered, perfected, or witnessed since the birth of the network age.
Candle Ten: The death of DOE
The much ballyhooed adventure of DOE (Distributed Objects Everywhere) was an interesting segue into the network age. After five years of vaporware status, Sun finally deigned to unleash the technology in late 1995, rechristened as Neo; however, DOE cum Neo was rather DOA in light of the Java tsunami to come.
Neo was a C++ implementation of Object Management Group's CORBA distributed object architecture, an implementation that included an object request broker, naming services, and persistent object availability. At that time, Sun had visions of enterprise developers creating and deploying distributed, object-oriented applications on its Neo platform and using Solaris as a frontend development and operating environment for the backend Neo applications—all of which would run on Solaris (duh!). But with Java and Enterprise JavaBeans, DOE was dust; Sun announced the EOL of Neo some two years later with little complaint or fanfare. DOE deserves the first candle on the Java cake, since much of its vision was subsumed by Java. Ironically, the era of compiled languages was just coming to a close when DOE was finally released, which leads us to the next candle...
Candle Nine: WORA, bytecode, and the VMs that eat them
Remember WORA? More importantly, do you remember the dark ages before the naive hope of WORA? It is difficult to imagine what the world of software development might be like today if bytecode, virtual machines, and at least the promise of "Write Once, Run Anywhere" had never existed. The VM/bytecode approach seems so obvious now in retrospect that it's difficult to imagine someone not perfecting it had Sun faltered.
No, Sun didn't invent bytecode. Nor did it invent the concept of the VM or object-oriented programming. But Java brought the right mix of technologies to the right audience at the right time, and it made sense. Point of fact: There have been many pretenders to the throne in the wake of Java's success—thoughts for a candle yet to come—because, no doubt, of the sensible approach to the problem that Java yielded. How can we achieve portable behavior otherwise, once something like a browser becomes ubiquitous?
Candle Eight: Technology evangelism
Sun didn't invent the idea of technology evangelism either. A guy named Guy Kawasaki, formerly of Apple, was probably the first official, full-time TE entitled as such. Emerging in the mid-1980s, Kawasaki touted the then embryonic Macintosh system to software developers. And the TE approach worked. Fast-forward 10 years…
The Java platform deserved and needed a bit of theater, which is what technology evangelism is at its best. So in addition to passion and pathos, Miko Matsumura, the first Java technology evangelist, provided theatrics, entertainment, and ubergeek-presence during the critical early days of JavaSoft at Sun. His antics ran the gamut, from the sublime (the JavaRing/JavaSpaces demo at JavaOne '98) to the ridiculous (that same year, dressed as Java-mascot Duke, Matsumura flamboyantly bungee-jumped off a San Francisco Bay Area bridge to garner publicity for Java). When Matsumura left Sun, the salad days of Java evangelism were over. Those of us who remained to continue the mission at Sun quickly discovered that the evangelism role necessarily transforms into more of an educational service as the goals of evangelism are achieved.
Technology evangelism, as such, still lives on at Sun. But since the early days of Java and Matsumura, the concept of technology evangelism has taken hold in a number of different firms and is considerably more common in technology circles today, which was not the case before Java.
Candle Seven: Gosling, the programmer's programmer
Can you name a truly famous programmer prior to James Gosling? Besides Bill Joy?
Perhaps a few names come to mind. But none has matched the iconoclastic presence of Sir James. Part software demigod, part corporate quipster, Gosling is a model statesman for the techno-celeb mantle that never seemed to fit Bill Joy very well.
Prior to Java, Gosling was probably best known for having invented the text editor Emacs. With Java, he emerged from Joy's shadow to become the leading personality (sorry, Linus) for geek-enclaves globally. James Gosling is living proof that nice guys sometimes do very well indeed.
Gosling's presumptive role as one of the leads (if not the lead) of the aboriginal Green project (which led to Oak, which ultimately led to Java) has transformed his public personae into one of the most recognizable Internet icons of the current epoch. Having watched, witnessed, and worked with Gosling at Java events in the late '90s and early '00s, I can personally attest to the near-mythic appeal he seems to have with software developers around the world. Prior to Java, that sort of techno-celebrity mystic may have been achieved by a few names—perhaps an Edison or a Tesla, or perhaps Steve Jobs and Bill Gates, although their 100 percent pure-geek credentials are questionable. But now, some 10 years into the Java-fed network age, a slew of geeks has risen to modern prominence including Gosling, Torvalds, Eric Raymond, Tim Berners-Lee, Nicholas Negroponte, Richard Stallman, Lawrence Lessig, Ray Kurtzweil, Steven Mann, Kevin Warwick, and a gaggle of others. With this candle, let us celebrate the celebrated, those who have risen to prominence based on laudable contributions to the digital noosphere.
Candle Six: Certification soup and outsourcing
Sun was certainly not the first company to offer professional certifications for technical skills. Microsoft's MCSE (Microsoft Certified Systems Engineer) program probably predates Java by at least two years. And to my reckoning, Novell was offering certification programs for their proprietary systems well before its entree into the Unix space in the early '90s. So there is nothing new with Java certifications, per se. But the explosion of technology certifications that has occurred since the ascension of Java has been warmed, no doubt, by the "virtual team" collaborative possibilities inherent with a burgeoning Internet. That potential, coupled with the compelling financial draw of world-class programming talent in a globally-distributed work environment, proved to be a potent recipe for a massive shift in knowledge-work practices, otherwise known as outsourcing. Arguably, programming certification was fuel to the outsourcing fire, both of which burn brightly atop this anniversary candle.
By my count, there are now seven different Java certifications, distributed among programmer, developer, and architect classifications. Each of these, presumably, helps to prepare one to successfully navigate a Java career path. Now if you really want to get seriously certified, Microsoft offers at least three times that many, from your basic MCSE to a litany of platform-specific specialties such as security guru, database administrator, cluster server professional, and many more.
Add to that a bevy of Cisco certifications, those from Novell, which now includes a suite of Linux certifications, those from RedHat, Oracle, IBM, Computer Associates, Apple, and a herd of others, and one begins to wonder if perhaps a new discipline might emerge from the Certification Soup that has been simmering since the advent of the network age: a Certification Specialist, someone who is certification certified. Someone who has studied the entire universe of technology certifications and can advise companies on which certifications they should be requiring for the various job descriptions that permeate the enterprise. Alas, though I write this suggestion in jest, it may yet be that such a discipline may very well emerge to cope with the explosion of certifications that began in earnest some 10 years ago. That trend, sadly, does not seem to be abating.
Candle Five: Community source
Open source software, as a movement, traces its roots to the formation of the Free Software Foundation (FSF) and GNU ("GNU" is a recursive acronym that means "Gnu's not Unix") by Richard Stallman in 1983. Bill Joy would probably argue that the concept of community source actually predates Stallman's vision, beginning with the Berkeley (BSD, or Berkeley Software Distribution) Unix offering, which Joy developed as a graduate student in the mid-1970s. While the GNU project did not actually give rise to a free version of Unix, it did result in the creation of some reasonably popular tools for Unix programmers, like the GNU C compiler and a text editor. More importantly, GNU set the stage for the more ambitious, more successful free software development projects in the 1990s, including Linux and Apache and (to some extent) Java.
Community source is not quite open source. Sun contends that the community source model gives rise to a best-of-both-worlds scenario when compared with either open source or proprietary (i.e., closed) source. In reality, the difference comes down to one of licensing, which may ultimately be the most important difference of all. The principles behind the Sun Community Source Licensing (SCSL) model include four distinct benefits over either a purely open or purely proprietary source approach, to wit:
- It provides protection for intellectual property
- It guarantees structured innovation within a single responsible organization
- It is clear who owns what
- There is clear control over compatibility
Many argue today that Sun's community source (the Java Community Process, or JCP) approach is no longer acceptable when it comes to the Java platform. According to open source proponents, community source simply is not enough—to be truly politically correct, it must be fully open source.
Should the entire Java platform be available in an open source format? Perhaps the debate itself is of most benefit to Sun—the press is obviously enamored with confrontations, and as long as the debate rages, there will be copious articles with Sun's name promulgating Web space.
The Java open source vs. community source debate may yet rage a while longer. What will be the result? Ultimately, when the story has been entirely milked for PR purposes, Sun will provide an open source version of Java. Will the platform then split? Probably. Will that mean the end of Java? Probably not. But those kinds of predictions are well beyond the scope of this article and may constitute an unforgivable waste of bandwidth.
Suffice it to say that once again, while Sun did not invent the idea of open source, the impressive foray of open and community source software into the once impenetrable glass rooms of established commercial IT bastions, a process that started in earnest in the mid-1990s, was also due to the efforts of Sun Microsystems, SCSL, the JCP, and the Java platform. Hence, this candle is bigger than the current licensing debate.
Candle Four: JavaOne—The Acme of conferences
Have you ever attended a JavaOne conference? An authentic Moscone Center JavaOne? It is a sight to behold.
There is an ineffable spirit that permeates that section of San Francisco whenever JavaOne comes to town. I compared it once to a Brigadoon, an enchanted, magical town that comes out of the Scottish mists for only a day, just to disappear again for another hundred years. Brigadoon is a love story. So is JavaOne.
Were there programmer conferences before JavaOne? Of course. Were they well-attended and informative? Naturally. Was there ever one as interesting, taxing, daunting, Bohemian, or complete as a JavaOne? Probably not.