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.
There are no words to adequately describe the essence of a JavaOne conference. Each one is different, and yet they are the same. There is something about the spirit of Java that caught the imagination of programmers around the world—something that sparked the imagination of hundreds of thousands of novel software projects, millions of willing programmers, and thousands of major software development efforts. And that spirit communes every year at JavaOne in San Francisco, in a geek-laden Brigadoon, as it has from the humble beginning of the Java movement some 10 years ago.
The Java platform may very well have been just as successful without JavaOne. But to the extent the historical record is captured and codified by and for attendance at the conference (some developers plan their entire year around the pilgrimage to San Francisco), and that the attendance at JavaOne has remained healthy despite economic declines, stock market bubbles, and platform competition, it is clear that the very idea of JavaOne has been one of those unintended consequences that has indelibly marked the advent of the network age. JavaOne is the high mass celebration of geekdom in the current epoch.
Candle Three: Java the brand
The Java logo was one of the first recognizable brands to emerge from the dot-com madness that permeated the first few years of the network age. From Java's coming-out party to the dot-com bust, people who knew nothing about programming, software platforms, or e-commerce had a pretty good idea that Java was an Internet brand of something that wasn't coffee, and that the primary purveyor of it, Sun Microsystems, was therefore a pretty good investment. And Sun's stock flew as a result.
In retrospect, it might have been better for Sun had the company elected to actually sell branded coffee instead of giving away virtual machines, as the 10-year charts for Sun (SUNW) versus Starbucks (SBUX) below may indicate. But the Java brand caught on and represented, somehow, those early, gleeful days of e-commerce when there were no consequences and a dot-com IPO meant guaranteed gains and prosperity for all.
In 2004, Sun made another (failed?) attempt at actually capitalizing on the Java brand (in 2004, eWeek reported that 70 percent of people in the US recognized the Java brand, but only 10 percent knew of the Sun Microsystems brand). If the performance of SUNW since then is any measure, the market still ain't buyin' it. It will likely take a lot more than a "Java Powered" sticker and the zany antics of an aging mascot to rescue the once mighty Sun. Some suggest another company altogether will save Sun—Dell? HP? Fujitsu? IBM? But nothing has seemingly transpired to that end.
Perhaps Sun will continue to languish, content to muddle along as it has for nearly three years now. The Red Queen Hypothesis (which holds that organisms must always evolve to survive) suggests that Sun needs to come up with something relatively substantial (soon) in the way of innovation or it will cease to exist. So perhaps take-over rumors will resurface coincident with celebrations of Java's decade of impact. Or there is always the possibility that the next remarkable invention is just waiting to be released by Sun's marketing wizards, just as soon as this Java anniversary celebration thing has played out.
Candle Two: E-commerce
The 10-year anniversary of e-commerce occurred last year—sorry if you didn't get the word. Verisign and CNet sent out invitations; if you weren't on the list, see Resources for the event rundown.
The meaning of electronic commerce has changed over the years. Originally, the term meant the electronic facilitation of commercial transactions with Electronic Data Interchange, which allowed organizations to digitally transmit documents like purchase orders and invoices (see the standard for EDI). With the advent of the browser, e-commerce came to include a bevy of activities in the domain of Web transactions. E-commerce—the purchase of goods and services over the World Wide Web via secure servers with electronic shopping carts and payment services—probably did officially begin at some point in 1994.
The term e-commerce itself was most certainly used to mean Web-based commercial transactions around the same time that we saw the introduction of the browser, Windows 95, and Java. It was thus that the network age was born.
The growth of e-commerce has been rather stunning and one of the most important global developments of the past 10 years. The reduction of commercial friction, due to the cost-reducing nature of e-commerce transactions, has no doubt been one of the contributing factors in the increase in aggregate productivity that has coincidently occurred over the same period.
I distinctly recall discussing the potential of e-commerce during some of my earlier stints as an evangelist for Sun—late 1996 timeframe—and how companies like Dell were leading the way with online purchases. Indeed, at the time, the bold move by Dell to focus its business on Web-based transactions seemed rather risky. Discussions then of multibillion dollar growth over the next decade seemed almost outlandish. Today, in retrospect, the meteoric growth of e-commerce appears to have been an obvious and inevitable result of economic forces—but, then again, so does the dot-com crash of 2000 when viewed with the same hindsight.
In any event, as we celebrate 10 candles on the Java cake, one of the premiere candles has to be the irresistible onslaught of e-commerce and the paradigm-shifting, productivity-enhancing profits that followed.
Candle One: Ubiquity and The Dark Side
The ultimate candle is that of ubiquity.
Today the Java platform is at least as entrenched as COBOL and FORTRAN wrapped into one; probably more so. The Java platform busted the ubiquity threshold earlier in the decade. According to Sun President Jonathan Schwartz at the JavaOne event in June of 2004, "The ubiquity of Java technology buys rapidly growing market opportunities in every part of the world." At the time, he claimed the existence of 4 million Java developers worldwide, 650 million PCs shipped with Java, and 350 million mobile phone handsets enabled by Java. This is to say nothing of the server-side momentum toward the platform. Clearly, Java is about as ubiquitous as it gets, especially in light of the actions by (you guessed it) Bill Gates and company, aka The Dark Side.
Remember The Dark Side? What ever happened to .Net anyway? Quite a bit, as it turns out. According to some, the momentum of .Net in the past few years has been considerably more dramatic than the adoption of Java technology (2.5 million .Net developers says IT Facts). And if you believe everything you read on the Internet, I've got a compendium of opportunities that will provide incredible income for you regardless of your education or how hard you work, as well as unbelievable dating opportunities with fabulously sexy models that are just waiting to meet you no matter how stupid or ugly you may be, and (if you act now), a new car absolutely free!
So is .Net still relevant?
If you are mired in Microsoft certifications, or if your organization is still Redmond-centric, you bet it is. Granted, Microsoft is being attacked on all fronts (see "The Firefox Explosion," (Wired Magazine, February 2005)), which ought to quell its appetite for Java brawling, at least for a while. But then again, Bill Gates probably emerged from the dot-bomb era a bit more flush than Scott McNealy. And with rumors of a Sun merger (or even privitization), many possible futures may yet loom for Java. The "threat of .Net" may not be as ominous as it once may have appeared to be to the more loyal Java base.
Now that we've blown out these candles representing the last 10 years of the network age, let's return to our riddle.
Happy Anniversary, Java!
"If there are 10 candles and three were blown out, how many are left?"
It's a riddle that is mired in ambiguity (which is inherent in semantics), so the fact of the matter is, there is no one single correct answer. It depends, as does so much in the way of natural language, software development, human relations, e-commerce, and life in general, on the context of the discussion.
What does 'are' mean? (Can you hear Bill Clinton giggling?) "If there are 10 candles." Is 'are' not a verb of present tense, implying that 10 candles now exist and that therefore 10 candles are left? On the other hand, what does 'were' mean? Does 'were' not imply past tense, in which case, if there were originally 10 candles, all of which were presumably burning, and three were blown out, the remaining seven have now burned down to nothing (as candles are wont to do); so, then only three are left? Perhaps they are quantum mechanical candles, in which case we cannot know how many candles are left until they are observed...
In the spirit of the 10 candles then, Happy Anniversary Java! While some things remain shrouded in ambiguity, one thing is abundantly clear: it's been a heck of a ride these past 10 years. May the next 10 be...even better.
Disclaimer: After nine years with Sun Microsystems, the last six of which were spent serving as a Java Technology Evangelist, it is likely that I retain some residual pro-Sun bias, despite being Kool-Aid free for more than two years.