
At first glance, it may appear that Java was developed specificallyfor the world wide web. However, interestingly enough, Java was developedindependently of the web, and went through several stages of metamorphosisbefore reaching its current status of de facto programming language forthe world wide web. Below is a brief history of Java since its infancyto its current state.
According the Java FAQ, [Harold] Bill Joy, currentlya vice president at Sun Microsystems, is widely believed to have been theperson to conceive of the idea of a programming language that later becameJava. In late 1970's, Joy wanted to design a language that combined thebest features of MESA and C. In an attempt to re-write the UNIX operatingsystem in 1980's, Joy decided that C++ was inadequate for the job. A bettertool was needed to write short and effective programs. It was this desireto invent a better programming tool that swayed Joy, in 1991, in the directionof Sun's "Stealth Project" - as named by Scott McNealy, Sun'spresident. [Harold]
In January of 1991, Bill Joy, James Gosling, Mike Sheradin, PatrickNaughton (formerly the project leader of Sun's OpenWindows user environment),and several other individuals met in Aspen, Colorado for the first timeto discuss the ideas for the Stealth Project. The goal of the Stealth Projectwas to do research in the area of application of computers in the consumerelectronics market. The vision of the project was to develop "smart"consumer electronic devices that could all be centrally controlled andprogrammed from a handheld-remote-control-like device. According to Gosling,"the goal was ... to build a system that would let us do a large,distributed, heterogeneous network of consumer electronic devices all talkingto each other." With this goal in mind, the stealth group began work.[O'Connell]
Members of the Stealth Project, which later became known as the GreenProject, divided the tasks amongst themselves. Mike Sheradin was to focuson business development, Patrick Naughton was to begin work on the graphicssystem, and James Gosling was to identify the proper programming languagefor the project. Gosling who had joined Sun in 1984, had previously developedthe commercially unsuccessful NeWS windowing system as well as GOSMACS- a C language implementation of GNU EMACS. He began with C++, but soonafter was convinced that C++ was inadequate for this particular project.His extensions and modifications to C++ (also know as C++ ++ --), werethe first steps towards the development of an independent language thatwould fit the project objectives. He named the language "Oak"while staring at an oak tree outside his office window! The name "Oak"was later dismissed due to a patent search which determined that the namewas copyrighted and used for another programming language. According toGosling, "the Java development team discovered that Oak was the nameof a programming language that predated Sun's language, so another namehad to be chosen." [O'Connell] [Harold]
"It's surprisingly difficult to find a good name for a programminglanguage, as the team discovered after many hours of brainstorming. Finally,inspiration struck one day during a trip to the local coffee shop"Gosling recalls. Others have speculated that the name Java came from severalindividuals involved in the project:James gosling,ArthurVan hoff,Andy bechtolsheim. [McCarthy]
There were several criteria that Oak had to meet in order to satisfythe project objective given the consumer electronics target market. Giventhe wide array of manufacturers in the market, Oak would have to be completelyplatform independent, and function seamlessly regardless of the type ofCPU in the device. For this reason, Oak was designed to be an interpretedlanguage, since it would be practically impossible for a complied versionto run on all available platforms. To facilitate the job of the interpreter,Oak was to be converted to an intermediate "byte-code" formatwhich is then passed around across the network, and executed/interpreteddynamically. [O'Connell] [Harold][McCarthy]
Additionally, reliability was of great concern. A consumer electronicsdevice that would have to be "rebooted" periodically was notacceptable. Another important design objective for Oak would then haveto be high reliability by allowing the least amount of programmer-introducederrors. This was the motivation for several important modification to C++.The concepts of multiple-inheritance and operator overloading were identifiedas sources of potential errors, and eliminated in Oak. Furthermore, incontrast to C++, Oak included implicit garbage collection thereby providingefficient memory utilization and higher reliability. Finally, Oak attemptedto eliminate all unsafe constructs used in C and C++ by only providingdata structures within objects. [O'Connell][McCarthy]
Another essential design criterion was security. By design, Oak-baseddevices were to function in a network and often exchange code and information.Inherently, security is of great concern in a networked environment, especiallyin an environment as network dependent as the conceived Oak-based systems.For this reason, pointers were excluded in the design of Oak. This wouldtheoretically eliminate the possibility of malicious programs accessingarbitrary addresses in memory. [O'Connell][McCarthy]
If Oak were to be widely accepted and used within the consumer electronicsindustry, it would have to be simple and compact, so that the languagecould be mastered relatively easily, and development would not be excessivelycomplex. Some would argue that Oak/Java is C++ done right, but the juryis still out on that...
In April of 1991, Ed Frank, a SPARCstation 10 architect, joined thegreen project. He led the project's hardware development effort. In twomonths, they developed the first hardware prototype known as star-seven(*7). The name *7 was somewhat demonstrative of the project's objective.*7 was the key combination to press on any telephone to answer any otherringing telephone on their network. In the meantime, Gosling was beginningwork on the Oak interpreter. By August of 1991, the team had a workingprototype of the user interface and graphical system which was demonstratedto Sun's co-founders Scott McNealy and Bill Joy. [O'Connell]
Development of Oak, the green OS, the user interface, and the hardwarecontinued through the summer of 1992. In September of that year, the *7prototype was complete and demonstrated to McNealy and Joy. The prototypewas a PDA-like (personal digital assistant) device that Gosling describedas a "handheld remote control." Patrick Naughton proclaimed that"in 18 months, we did the equivalent of what 75-people organizationsat Sun took three years to do -- an operating system, a language, a toolkit,an interface, a new hardware platform, ..." [O'Connell]
While impressive, the market was not conducive to this type of technology,as later demonstrated by Apple's Newton PDA. The Green project's businessplanner, Mike Sheradin, and hardware designer, Ed Frank had envisioneda technology similar to that of Dolby Labs which would become the standardfor the consumer electronics products. [O'Connell]
In November of 1992, the Green Project is incorporated under the nameFirstPerson. Given Java's lack of success in the consumer electronics industry,the company's direction was somewhat uncertain. Under Sun's influence,the company began re-evaluating its mission.
In early 1993, Time-Warner issued an RFP (request for proposal) fora set-top box operating system and interactive, video-on-demand technology.FirstPerson identified this area as a new target market, and began workingin that direction. However, despite FirstPerson's great efforts, SGI wasgranted the contract by Time-Warner. By mid 1993 Sun began negotiatingwith 3DO to provide a Java-based OS for their set-top box. The negotiationswere, however, unsuccessful and a deal was never made. FirstPerson wasleft on its own without any viable business prospects. Another attemptby the company to market its interactive TV technology fails when in Februaryof 1994 a public launching of their products is canceled. [O'Connell]
A Sun higher level review of FirstPerson determines the interactiveTV market to be immature in 1994. FirstPerson then shifts its focus yetagain. Business plans are submitted to Sun's executives for developingOak-based on-line and CD-ROM applications. Sun's response was not favorable,and FirstPerson was dissolved. Most of FirstPerson's employees moved toSun Interactive to digital video data servers. However, a few individualsfrom FirstPerson still pursued the objective of finding a home for Javain a networked desktop market. [O'Connell]
In June of 1994, Bill Joy started the "Liveoak" project withthe stated objective of building a "big small operating" system.In July of 1994, the project "clicked" into place. Naughton getsthe idea of putting "Liveoak" to work on the Internet while hewas playing with writing a web browser over a long weekend. Just the kindof thing you'd want to do with your weekend! This was the turning pointfor Java. [O'Connell]
The world wide web, by nature, had requirements such as reliability,security, and architecture independence which were fully compatible withJava's design parameters. A perfect match had been found. By Septemberof 1994, Naughton and Jonathan Payne (a Sun engineer) start writing "WebRunner,"a Java-based web browser which was later renamed "HotJava." ByOctober 1994, HotJava is stable and demonstrated to Sun executives. Thistime, Java's potential, in the context of the world wide web, is recognizedand the project is supported. Although designed with a different objectivein mind, Java found a perfect match in the World Wide Web. Many of Java'soriginal design criteria such as platform independence, security, and reliabilitywere directly applicable to the World Wide Web as well. Introduction ofJava marked a new era in the history of the web. Information provides werenow given the capability to not only deliver raw data, but also the applicationsthat would operate on the data.
Sun formally announced Java and HotJava at SunWorld `95. Soon after,Netscape Inc. announced that it would incorporate Java support in theirbrowser. This was a great triumph for Java since it was now supported bythe most popular browser in the world. Later, Microsoft also announcedthat they would support Java in their Internet Explorer web browser, furthersolidifying Java's role in the World Wide Web.
And the rest is, ...well, inchapter21.
Shahrooz Feizabadi<shahrooz@vt.edu>