
Please feel free to forward this newsletter to as many friends as possible. I have a personal goal of having one million readers. I can achieve it with your help.
the Software View: JavaTM, a wonderful brew (Part I)
For those of you with Internet and World Wide Web access and a Netscape Navigator web browser, please point your browser to:
http://www.softwareview.com/
Scroll down the page and you will spy a link entitled, "Current views web log (fresh news daily! Click reload, clear the browser cache)" The daily news page is also known as a "web log". It is en vogue and the fashion of these days to call it that. Click on the link, click "reload" on your browser or clear your browser cache to ensure that you always receive the freshest, hottest daily news concerning Java, Linux, XML, and the software industry! The link never changes, but I will be updating the HTML file page behind it every day. Please, do take a gander at it every day.
Also, some important news, gentle readers. the Software View is now an Associate Internet World Wide Web site of Amazon.com. I would like to extend my sincere, heartfelt gratitude and thanks for your patronage. I am offering links to books, et cetera that you can purchase from my web site. I would greatly appreciate it if you would purchase software industry books from my web site. Help support my newsletter and web site by purchasing items from Amazon.com from my web site. Here is the URL (Uniform Resource Locator):
Click here
Now, dear readers, on with this week's episode of the Software View!
The software industry has seen numerous paradigm shifts. It is this inevitable march of evolution that has crowned new Kings of the industry about once every ten years. The old monarchs don't die and disappear. Quite the contrary. They continue to live off their installed base of users, possibly worth billions of dollars. But their very dominance of old markets inhibits, prevents them from being the standard bearers of markets of the future.
At one time, IBM, ruled the software industry. They enjoyed a dominance so great that even Microsoft's present day monopoly couldn't rival it. IBM sold billions of dollars worth of mainframe hardware and software. Then, came the rise of minicomputers, and Digital ruled the land. The PC revolution crowned the twin Wintel rulers, Microsoft and Intel. I submit that we have witnessed the arrival of a new paradigm. A shift to the Internet and the rise of the networked enterprise economy. Sun Microsystems' Java has the potential to be the DNA of this new networked economy. It holds the promise of write once, execute anywhere. No longer will programmers have to spend 75% of their time worrying about the vagaries of the different platforms they write to. Before Java, trying to port your application required scores of IFDEF code statements. We are witnessing the hollowing out of the PC. Operating systems and computer chips are becoming irrelevant. Now, with Java, programmers can focus on what's really important: the business logic and creating awesome applications that provide real value to users.
Shahrooz Feizabadi wrote of the birth of Java. At first glance, it may appear that Java was developed specifically for the Internet. But, Java was developed independently of the web, and went through several stages of metamorphosis before reaching its current status of de facto programming language for the Internet. In the late 1970's, Bill Joy, co-founder and Vice President for Research at Sun Microsystems, wanted to design a language that combined the best features of MESA and C. In an attempt to rewrite the UNIX operating system in the 1980's, Joy decided that C++ was inadequate for the job. A better tool was needed to write short and effective programs.
Java first began life as the operating system for a PDA (personal digital assistant). In January 1991, the goal of Sun's Green project was to do research in the area of application of computers in the consumer electronics market. The vision of the project was to develop "smart" consumer electronic devices that could all be centrally controlled and programmed from a handheld-remote-control-like device. According to James Gosling, Vice President and Sun Fellow, "the goal was ... to build a system that would let us do a large, distributed, heterogeneous network of consumer electronic devices all talking to each other." James Gosling was to identify the proper programming language for the project. He began with C++, but soon after was convinced that C++ was inadequate for this particular project. His extensions and modifications to C++ (also known as C++ ++ --), were the first steps towards the development of an independent language that would fit the project objectives.
There were several criteria that Java had to meet in order to satisfy the project objective given the consumer electronics target market. Given the wide array of manufacturers in the market, Java would have to be completely platform independent, and function seamlessly regardless of the type of CPU in the device. For this reason, Java was designed to be an interpreted language, since it would be practically impossible for a compiled version to run on all available platforms. To facilitate the job of the interpreter, Java was to be converted to an intermediate "byte-code" format which is then passed around across the network, and executed/interpreted dynamically.
Additionally, reliability was of great concern. A consumer electronics device that would have to be "rebooted" periodically was not acceptable. Another important design objective for Java was to have high reliability by allowing the least amount of programmer-introduced errors. This was the motivation for several important modification to C++. The concepts of multiple inheritance and operator overloading were identified as sources of potential errors, and eliminated in Java. Furthermore, in contrast to C++, Java included automatic garbage collection thereby providing efficient memory utilization and higher reliability. Finally, Java attempted to eliminate all unsafe constructs used in C and C++ by only providing data structures within objects.
Another essential design criterion was security. By design, Java-based devices were to function in a network and often exchange code and information. Inherently, security is of great concern in a networked environment, especially in an environment as network dependent as the conceived Java-based systems. For this reason, pointers were excluded in the design of Java. This would theoretically eliminate the possibility of malicious programs accessing arbitrary addresses in memory.
If Java was to be widely accepted and used within the consumer electronics industry, it would have to be simple and compact, so that the language could be mastered relatively easily, and development would not be excessively complex. In September 1992, Java was demonstrated on a prototype PDA device that Gosling described as a "handheld remote control."
While impressive, the market was not conducive to this type of technology, as later demonstrated by Apple's Newton PDA. The Green project's business planner, Mike Sheradin, and hardware designer, Ed Frank, had envisioned a technology similar to that of Dolby Labs which would become the standard for consumer electronics products.
In November 1992, the Green Project was incorporated under the name FirstPerson. 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) for a set-top box operating system and interactive, video-on-demand technology. FirstPerson identified this area as a new target market, and began working in that direction. However, despite FirstPerson's great efforts, SGI was granted the contract by Time-Warner. By mid 1993 Sun began negotiating with 3DO to provide a Java-based OS for their set-top box. The negotiations were, however, unsuccessful and a deal was never made. FirstPerson was left on its own without any viable business prospects. Another attempt by the company to market its interactive TV technology failed when in February 1994 a public launching of their products was cancelled.
A Sun higher level review of FirstPerson determined that the interactive TV market was too immature in 1994. FirstPerson then shifted its focus yet again. Business plans were submitted to Sun's executives for developing Java-based on-line and CD-ROM applications. Sun's response was not favorable, and FirstPerson was dissolved. Most of FirstPerson's employees moved to Sun Interactive to create digital video data servers. However, a few individuals from FirstPerson still pursued the objective of finding a home for Java in a networked desktop market.
In June 1994, Bill Joy started the "Liveoak" project with the stated objective of building a "big small operating" system. In July 1994, the project "clicked" into place. Patrick Naughton, Starwave President and Chief Technical Officer, got the idea of putting "Liveoak" to work on the Internet while he was playing with writing a web browser over a long weekend. This was the turning point for Java.
The web, by nature, had requirements such as reliability, security, and architecture independence which were fully compatible with Java's design parameters. A perfect match had been found. By September 1994, Naughton and Jonathan Payne (a Sun engineer) started writing "WebRunner," a Java-based web browser which was later renamed "HotJava." By October 1994, HotJava was stable and demonstrated to Sun executives. This time, Java's potential, in the context of web, was recognized and the project was supported. Although designed with a different objective in mind, Java found a perfect match in the Web. Many of Java's original design criteria, such as platform independence, security, and reliability were directly applicable to the Web as well. The introduction of Java marked a new era in the history of the Internet. Information providers were now given the capability to not only deliver raw data, but also the applications that 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 ther browser. This was a great triumph for Java since it was now supported by the most popular browser in the world. Later, Microsoft also announced that they would support Java in their Internet Explorer web browser, further solidifying Java's role on the Internet.
To be continued ...
Sincerely,
Mark Kuharich
Join my free e-mail newsletter called the Software View by clicking here or sending mail to thesoftwareview-owner@west-point.org