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" Massachusetts : Addison-Wesley

History

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.

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 :

  • 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.

Internet

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
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

Write once, run everywhere

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