Category Archives: Reflections

Java’s 20th Birthday

To anyone with an interest in software engineering and open source projects, last January 23 was a date to celebrate as it marked the 20th anniversary of the first release of the Java Development Kit (JDK) in 1996 by Sun Microsystems (acquired by Oracle in 2010).

At the time the tech world was a different place. Mobile phones were not smart yet and were mostly used to make voice calls and to send the odd short txt msg 🙂

1996 Nokia Mobile Phone

Nokia Mobile Phone circa 1996

The World Wide Web consisted mostly of static HTML pages with hyperlinks, simple forms (processed by primitive CGI scripts on the server) and a sprinkle of GIF or JPEG images. By far the most popular Web browser at the time was Netscape with a market share of 86%.

In this context the arrival of Java applet technology was quite revolutionary. Developers could embed a fully interactive graphic application on a Web page to be run on the user’s computer, including games, spreadsheets and charts. Applets made Java an overnight sensation.

The first browser to support Java applets was HotJava, released by Sun Microsystems in 1997 to showcase Java technology.

HotJava Web Browser

HotJava Web browser

Ironically however despite making headlines initially as a technology that would radically change the Web user’s experience, Java’s great success was to be on the server-side and enterprise application space.

In 1998 Java 2 was released along with the Java Enterprise Edition (J2EE, now JEE) which extended the Java platform to provide an API and runtime environment for distributed computing. It was a powerful proposition and led Java to become a popular back-end workhorse on countless enterprise and Web systems. This popularity is still very strong today with Java powering some of the most popular websites including Google, YouTube, Facebook, Twitter and Amazon.

JEE Architecture

JEE Architecture

1998 also saw the initial release of the Java Platform Micro edition (Java ME), designed for embedded systems, today widely used in mobile handsets and set-top boxes. Java ME is in a strong position to become the platform of choice for the Internet of Things expected to be one of the most important technology trends in the next decade.

Subsequent releases of the three Java platforms (Standard, Enterprise and Micro) into the new Millennium brought more features and more efficient runtimes reinforcing its strong position.

What is the reason for Java’s continued success over its 20 year history? I think there are at least three key factors: portability, simplicity and vision.

Portability: with its virtual machine architecture, programs written in Java can run in any platform where a Java Virtual Machine exists without any change in the code.

Simplicity: its automatic memory management and verbose syntax make Java an easy programming language to learn. Its extensive software library allow developers to easily accomplish complex tasks such as network programming and database access with just a few lines of code.

Vision: Java is in fact much more than a programming language. It is also a software library, an enterprise platform, an embedded platform, an architecture, a virtual machine. This powerful ecosystem supporting the language will continue to play a key part in Java’s persistent success.

Java's Mascot

Happy 20th Birthday, Java!

References:

http://spectrum.ieee.org/computing/software/the-2015-top-ten-programming-languages
https://en.wikipedia.org/wiki/Programming_languages_used_in_most_popular_websites