Java

From   
Java is fun to use and practical. It removes tedious and error-prone parts of application development such as memory management and cross-platform porting.
— Jonni Kanerva (1997) "The Java FAQ" Addison-Wesley
The success of Java itself would be in slow, deliberate entrenchment in the oatmeal world of enterprise software, the long-lasting collections of programs that together serve the needs of whole organizations. The Java language promised "write once, run anywhere" functionality, that is, code written for the JVM would run the same regardless of the underlying machine or operating system.

Software companies spend a fortune building separate code for Windows NT, Windows 3.1, Linux, MacOS, Solaris, AIX, etc. This is a major headache for every IT shop. Java has achieved the greatest success in letting developers write Java code once for all platforms.
— Michael Byrne (February 2, 2016) The Rise and Fall of the Java Applet: Creative Coding’s Awkward Little Square Vice


History

Background

The origins of Java go back to 1990. The personal computer was in its ascendancy, and many inside and outside Sun thought the company had missed major opportunities in the desktop markets. Its high-end workstation and server markets were rolling along fine, but as PC use spread across the landscape, the company faced being stranded in a narrowing slice of the computer market. Sun machines had a reputation for being too complicated, too ugly, and too nerdy for mass consumption.

Thus, McNealy was more than ready to listen when a well-regarded 25-year-old programmer with only three years at the company told him he was quitting. Naughton told McNealy that he was quitting to join NeXT Computer Inc., where, he said, "they're doing it right".

McNealy paused for a second then shrewdly asked Naughton a favor.

Before you go, write up what you think Sun is doing wrong. Don't just lay out the problem. Give me a solution. Tell me what you would do if you were God.

The following morning, Naughton threw his heart and soul into the challenge. He typed out a list of Sun's shortcomings along with his own glowing appraisal of NeXT's critically acclaimed NeXTstep operating system.

Later, he emailed his report to McNealy, who forwarded it to the entire management chain. A firestorm was ignited. The following morning, Naughton's e-mail box was bursting. Hundreds of CC'd readers had read his recipe for what ailed Sun and had agreed in a resounding chorus. Naughton was "brutally right", James Gosling e-mailed, a remarkable programmer whose opinions carried great weight higher up. "Somewhere along the line, we've lost touch with what it means to produce a quality product."

It was John Gage, Sun's science office director who really dug in, asking, "What is it you really want to do?" They came up with some core principles for a new project : consumers are where it's at; build a small environment created by a small team; and make the environment include a new generation of machines that are personal and simple to use, computers for normal people.

If still vague, these principles were enough to get Gage's executive juice flowing. With his support, Naughton pitched the high concept to Wayne Rosing, then president of Sun Laboratories Inc.

Naughton laid down key demands that he'd scribbled on the back of a restaurant place mat : the project would be located offsite, away from corporate "antibodies" well known for attacking innovative ideas. The project's mission would be kept a secret from all but the top executives at Sun. The software and hardware designs would not have to be compatible with Sun's existing products, and for the first year, the team would be given a million bucks to spend.[1]

StarSeven

The secret "Green Team", fully staffed at 13 people, was chartered by Sun to anticipate and plan for the next wave in computing. Their initial conclusion was that at least one significant trend would be the convergence of digitally controlled consumer devices and computers.[2]

Gosling made the observation that computer chips were appearing in toasters, VCRs and many other household appliances, even in the doorknobs of their ski-lodge rooms. Yet three remote-control devices were needed just to get a TV, a VCR and a living-room sound system to work. Most people still couldn't program any of them. The wonder wasn't that chips were everywhere, but that they were being used so badly. "With a little computer science, all of these things could be made to work together," Gosling insisted. The Green team decided to build a prototype of a device that could control everyday consumer appliances.
— David Bank (December, 1995) "The Java Saga" Wired Magazine

In the summer of 1992, they emerged with a working demo, an interactive, handheld home-entertainment device controller with an animated touchscreen user interface. The device was called StarSeven.

StarSeven specifications[3] :

  • SPARC based handheld wireless PDA with 5-inch color LCD with touchscreen input
  • 16 bit (5 bit red, 6 bit green, 5 bit blue) color hardware double buffered NTSC framebuffer
  • 900 MHz wireless networking
  • PCMCIA bus interfaces
  • Multimedia audio codec
  • Power supply/battery interface
  • A version of Unix that runs in under a megabyte
  • Drivers for PCMCIA, radio networking, touchscreen, display, flash RAM file system, execute-in-place, split instruction/data cache, cached framebuffer support,
  • Small, distributed, interpreted, garbage collected, multi-threaded, architecture neutral, dynamic programming language

The reason StarSeven was able to control a wide range of entertainment platforms and appliances, while displaying animation, is that it ran on an entirely new, processor-independent language. The language itself was created by James Gosling, a Green Team member.

Later, they were trying to find a market for a StarSeven-type of device. The TV set-top box and video-on-demand industries seemed to make the most sense. Unfortunately, those industries were in their infancy and still trying to settle on viable business models.

HotJava

We were pitching the cable companies on the idea that this is what your network should look like. It was interactive, and users could read and write information into the system. But the companies didn't want to lose that much control. After we realized that there wasn't a business in digital cable television, we had a group meeting. We had to figure out what to do with this technology
— James Gosling

There, over the course of three days, they had a group epiphany : why not the Internet? The newly popular Internet was exactly the type of network configuration that the team had envisioned for the cable TV industry. The team returned to work up a clone of Mosaic they named "HotJava Browser".

In 1995, John Gage, director of Sun's Science Office was headed to the Technology, Entertainment and Design Conference in Monterey. He had been invited to give a talk at this "Hollywood-meets-Silicon-Valley" gathering of Internet and entertainment professionals. He had downloaded WebRunner and was going to demonstrate it to the audience.

As the talk began, Gosling noticed that many people were only casually paying attention. Then Gosling moved the mouse over an illustration of a 3D molecule in the middle of the text. The 3D molecule rotated with the mouse movement. Back and forth, up and around. The entire audience went "Aaaaah!". Now everyone was paying close attention. Next, Gosling and Gage pushed the audience over the edge with an animated line-sorting algorithm that Gosling had written. The audience had never seen anything but static images in a browser before this. Suddenly, everyone in the room was rethinking the potential of the Internet. Within this crowd, word would spread quickly.

While today's Web is mostly a static brew - a grand collection of electronically linked brochures - Java holds the promise of caffeinating the Web, supercharging it with interactive games and animation and thousands of application programs nobody's even thought of.
— David Bank (December, 1995) "The Java Saga" Wired Magazine

Netscape

The public announcement of Java technology has been scheduled as a part of the keynote speech at the SunWorld show kick-off. But then, an unexpected turn of events ocurs.

It is about 4 am, in a Sheraton Palace hotel room down the street from the convention center. Sun's Eric Schmidt and George Paolini are shaking hands with Netscape's Marc Andreessen on an agreement to integrate Java technology into the Navigator browser.

Andreessen agreed to step out on stage during the morning's keynote speech and reveal the surprise agreement as part of the Java technology announcement. Most of the Java team didn't know the agreement has taken place until the moment Andreessen and the Sun execs walk on stage.
—Jon Byous (1998) "Java Technology : The Early Years" java.sun.com

Javascript

Hype ensued. With that hype came JavaScript, a language whipped up by Netscape engineer Brendan Eich in 10 days in 1995 to be featured in the forthcoming Navigator 2.0. The JavaScript name usually taken to be a quick cash-in on the Java buzz of the time. JavaScript promised much of the same web functionality as Java.

JavaScript didn't immediately sink the Java Applet, despite web browsers eventually being able to do cool stuff without having to farm it out to the JVM. This is because for many years the JVM still offered performance advantages. It makes sense, since the Applet has access to the full resources of a simulated computer.

Whereas JavaScript had conventionally been run within the confined of a browser, the release of Google's V8 JavaScript engine in 2011 meant that JS code would now be compiled by Chrome and then run on the user's actual machine. V8 compiles JavaScript source code directly into machine code when it is first executed. There are no intermediate byte codes, no interpreter. It one ups the Java Applet. No more JVM, just the whirr of optimized machine code running on hardware.

Applets have not aged well. The technology proved to be very difficult to evolve, and so applets have not been considered to be a modern development platform for many years. However, they doggedly persist due to some large early adopters being very resistant to change. The resulting effect to the ecosystem is that Java applets are still presents in the platform, and are a major contributor to security problems.

The impetus for Java dumping the Applet is chiefly that modern browsers had already dumped it or were in process of dumping it along with other plug-in based technology, such as Flash and Silverlight.

Finally, Java's corporate parent Oracle announced in 2016 that it's finally killing the Applet.
—Michael Byrne (February 2, 2016) The Rise and Fall of the Java Applet: Creative Coding’s Awkward Little Square Vice

References

  1. David Bank (December, 1995) "The Java Saga" Wired Magazine
  2. Jon Byous (1998) "Java Technology : The Early Years" java.sun.com
  3. James Gosling A Brief History of the Green Project