THE 1990S

Java

In 1991, a team of engineers at Sun Microsystems launched the “Green” project under the leadership of James Gosling. Their ambition was to create a distributed system that would enable electronic devices to communicate with each other in a heterogeneous network. The idea was to offer consumer electronics manufacturers a technology suited to their needs.

The engineers began their work with C++. But the need to adapt code to different processors led them to consider compiler modifications. Despite possible extensions, C++ proved too complex to meet their requirements. This dead end led them to design a new language: Oak, named after the tree that Gosling could see from his office window.

Oak was created to program interactive television control devices and home automation systems. After several months of intense work, the team produced a complete operating system, a toolkit, an interface, an innovative hardware platform, and three custom chips. All of this culminated in the “*7” (Star 7), which Gosling described as a “handheld remote control”.

The Green team, which became FirstPerson Inc., responded to a 1993 call for tenders for a set-top box operating system and video-on-demand technology. Their solution stood out for its technical excellence, but the market went to SGI for reasons that Gosling considered non-technical. FirstPerson persisted in the set-top box sector until 1994, when reality set in: this market was not viable. The company disappeared, and half of its staff joined Sun Interactive to work on digital video data servers.

Everything changed in mid-1994. The Internet and the World Wide Web exploded. The team then decided to reorient Oak toward web applications. The language’s characteristics, particularly its architectural independence and platform neutrality, were remarkably well-suited to this environment.

In January 1995, Oak became Java, a name available for registration. The language transformed into a tool for creating web applications. To demonstrate its potential, the team designed HotJava, a web browser written entirely in Java, capable of executing Java applications (Applets) directly integrated into web pages. Netscape and Microsoft would adopt this functionality. Sun then released the initial development kit (JDK) along with HotJava.

Java’s simplicity was immediately striking. Code could be read and written easily, reducing the risk of errors. The runtime environment automatically handled memory allocation and garbage collection, eliminating a major source of bugs that plagued C or C++.

Java enforced a rigorous object-oriented approach that structured and modularized programming. Its interpretation allowed programs to run on various platforms without recompilation, thanks to the Java Virtual Machine (JVM). Programs compiled to bytecode, an intermediate format independent of hardware. This characteristic guaranteed the portability of Java applications on any system equipped with a Java interpreter.

The language’s robustness stemmed from its strong typing system and thorough compilation checks. The absence of pointers, those recurring sources of problems in other languages, reinforced program reliability.

Java then evolved into several editions. Java 2 Standard Edition (J2SE) targeted standard desktop computers. Java 2 Enterprise Edition (J2EE) addressed enterprise applications. Java 2 Micro Edition (J2ME) covered mobile and embedded devices.

Improvements followed one after another. Java 1.02, released in 1996, suffered from significant limitations, such as the inability to print. Subsequent versions progressively enriched the functionalities. Java 1.2, published in December 1998 and renamed Java 2 three days later, notably introduced more sophisticated graphics libraries.

The developer community embraced Java for various reasons. The language simplified the creation of network applications, a legacy of its initial design for distributed systems. Its integrated security model protected against malicious programs. Its multitasking capabilities facilitated the development of high-performance and responsive applications.

The architecture of the Java Virtual Machine testified to the technical sophistication of the system. The class loader, method area, heap, and Java stack composed this runtime environment. The execution engine combined an interpreter and a Just-In-Time compiler that optimized performance by translating bytecode into native code.

Java transformed web programming by introducing applets, which executed code in browsers. This innovation enriched the user experience on the Internet and inspired new approaches to web development.

The “Write Once, Run Anywhere” philosophy influenced the design of subsequent languages and platforms. Java’s security model, automatic garbage collector, and object-oriented programming approach established standards that endure in contemporary software development.