Currently set to Index
Currently set to Follow

September 30, 2020 | Live Webinar

Migrating from Oracle to Azul OpenJDK
is easier than you think

224% ROI and payback in under 3 months for Azul Zing.
Read Forrester’s Total Economic Impact™ Study.

No Longer the Applet of the Developer’s Eye

No Longer the Applet of the Developer’s Eye

Oct 7, 2019 | 7 MIN READ

Duke Juggling Molecules I recently noticed that Applets are now, to use a Monty Python analogy, the Norwegian Blue of client-side development.

If you go all the way back to when Java was being developed, it was an Applet that caught everyone’s attention.

In early 1995, John Gage, Director of Sun Microsystems’ Science Office was heading to Monterey to do a presentation at the TED conference. The demonstration he planned was of a new web browser called WebRunner (the name being derived from Blade Runner). This included new technology that would, “bring the static Web to life”. James Gosling went with John to handle the demo. He moved the cursor over a colour 3D molecule image in the browser, clicked on it, and rotated the molecule back and forth. The entire audience, who had not really being paying much attention up to this point, went Aaaah! The web as we know it today, with all its interactivity, was born. And all thanks to an Applet.

Being a collector of arcane technology and related things, I still have my first Java CD from when I joined Sun in 1996.  

Included in the picture is my copy of “HELLO WORLD(S)!” from which I drew details of John and James’ demo.

Hello Worlds

In addition to having a copy of Netscape 2.0 and JDK 1.0 the CD also has various Applets, including the MoleculeViewer. (I had planned to install all of the CD software but the system requirements are “Any SPARCstation with Solaris 2.4 or later”, which I don’t have). In order to run the applets I initially tried using JDK 1.2.2 on a Linux machine but that wouldn’t run because my machine was 64-bit and JDK 1.2 did not understand an architecture name of x86_64. Even fixing the .java_wrapper (remember that?) it turns out the libc is way to modern and the java executable just gave a segmentation violation. I switched to JDK 8 and was reminded that not all classes compiled with JDK 1.0 will run on a JDK 8 JVM due to a security fix introduced in JDK 1.1.2.  (Very early compiled code from JDK1.0prebeta1 does not always set the maxlocals value correctly, resulting in a ClassFormatError).

Having recompiled the source files with JDK 8 the applets ran happily using good old appletviewer. I’ve included a couple of screen shots. (Of course, it would have been great to include it embedded in the blog webpage but, as we’ll see that wasn’t going to work).

Molec Molecule2

As history has shown, that first Eureka demonstration did not lead to a situation today where all web-based applications use Java. In fact, quite the opposite. The Java runtime was initially integrated with Netscape, the most popular browser in the late 1990s (anyone else remember having to pay for a browser?) There were a number of reasons that prevented Applets from achieving the potential they initially suggested:

In 2013, all the major browser providers started to phase out support for the underlying technology used by applets (primarily the NPAPI). By 2017, it was impossible to run an applet in a modern browser. At the same time, Oracle announced, with the release of JDK 9, that applets were being deprecated. With the release of JDK 11, in 2018, the browser plugin was removed from the Oracle JDK.

Although the java.applet package is still part of the Java SE specification, all classes have been deprecated since JDK 9. The browser plugin and appletviewer standalone tool are not part of the OpenJDK reference implementation so it is not possible to build these from open-source.

For anyone who is still using applets in production, the only possibility for further updates would seem to be to purchase a Java SE Subscription from Oracle and continue using JDK 8. Unfortunately, even that is no longer a viable option, as it turns out that Oracle ended support for the browser plugin back in March this year. The answer then is migrate to an alternative (most likely, HTML, JavaScript and CSS) as quickly as possible to avoid potential security vulnerabilities.

The sad news is then, that Applets are well and truly dead, they have ceased to be, they are no more. The good news, however, is that Java is still very much alive and well and continues to be the most popular programming platform on the planet.

If you need a free version of the OpenJDK that’s TCK tested and includes backports of features like TLS 1.3 and Flight Recorder, why not try Zulu Community?

Category: Azul Zulu

Topics: Applets, Java, JDK, JDK8

© Azul 2020 All rights reserved.