30 Years of Java - How Did We Get Here? by Simon Ritter

Share

Summary

Simon Ritter, who joined Sun Microsystems in 1996, recounts the 30-year history of Java, highlighting its influences, development, controversies, and diverse applications. He discusses how Java, initially a "blue-collar programming language" designed to get things done, drew inspiration from earlier languages like Lisp, Simula 67, C, and Pascal. Ritter also delves into the Green Project at Sun Microsystems, the creation of the Oak language (later Java), and its pivotal moment with the advent of the World Wide Web. He covers the evolution of Java's versioning, the legal battles with Microsoft, the shift towards open-source with OpenJDK, and its surprising applications in various devices from smart cards to mobile phones and even Lego Mindstorms. The presentation emphasizes that Java is more than just a computing platform; it's an ecosystem and a community.

Highlights

Introduction and Personal History with Java
00:00:07

Simon Ritter, who started at Sun Microsystems in 1996, quickly recognized Java's potential and delivered his first presentation on the language in 1997. He highlights that Java was not revolutionary but rather a holistic approach, combining the best features from various programming languages and platforms to create a practical tool for developers.

Influences on Java's Design
00:02:08

Java's design was influenced by several earlier programming languages. Lisp (1962) introduced garbage collection and early just-in-time compilation concepts. Simula 67 was the first object-oriented language, influencing Java's core object-oriented principles. C (1973) provided Java's familiar syntax, intended to ease the transition for C programmers. Pascal (1978) introduced the concept of p-code executed by a virtual machine, a precursor to Java's JVM. The emergence of the World Wide Web in 1991, with browsers like Mosaic and Netscape Navigator, created the perfect environment for Java's widespread adoption.

The Birth of Java: The Green Project and Oak
00:07:38

In 1991, a group of engineers at Sun Microsystems, seeking the "next big thing," formed the Green Project away from the main campus. James Gosling developed a new programming language called Oak (named after an oak tree outside his window), which was designed to be simple, object-oriented, distributed, interpreted, robust, secure, architecture-neutral, high-performance, multi-threaded, and dynamic. The initial target for Oak was a sophisticated remote control device called the Star 7 (similar to an iPad), and it featured an intelligent assistant that evolved into Java's mascot, Duke.

Pivotal Moment: Java's Web Debut and Official Launch
00:14:10

In 1994, John Gage demonstrated WebRunner, a web browser created in Java by the Green Team, at a TED Talk. The ability to manipulate a molecule on a webpage demonstrated dynamic functionality previously unseen in static web browsers, capturing significant attention. This led to the official release of Java in 1995, along with the HotJava browser, under the slogan 'Write Once, Run Anywhere.' A crucial agreement with Netscape Navigator, the most popular browser at the time, to integrate Java further propelled its initial success. The name 'Java' was chosen from a list of alternatives after 'Oak' was found to be trademarked.

Early Adoption Challenges and Versioning Quirks
00:18:00

Sun Microsystems created Javasoft to license Java and launched JavaOS, a Java-based operating system, and the JavaStation, a thin-client intended to replace dumb terminals. However, due to technological limitations, particularly insufficient memory, the JavaStation failed to gain traction. Microsoft's decision to integrate Java into Internet Explorer 3 in 1996 marked a significant step, but a subsequent lawsuit by Sun against Microsoft due to incompatible Java implementations highlighted the importance of standardization. Ritter also humorously details the inconsistent and often confusing evolution of Java's version numbering schemes over the years.

Path to Openness: JCP, Apache Harmony, and OpenJDK
00:33:00

Growing demand for openness led Sun to establish the Java Community Process (JCP) in 1999, creating Java Specification Requests (JSRs) that defined specifications, reference implementations, and Technology Compatibility Kits (TCKs). This ensured compatibility across different Java implementations. The Apache Harmony project (2005) attempted an open-source Java implementation but faced challenges with obtaining the TCK from Sun. This ultimately pushed Sun to open-source Java in 2006, leading to the creation of OpenJDK. By 2011, almost all of Java's source code was open, and major contributors like IBM joined the OpenJDK project.

Java's Diverse and Unexpected Applications
00:38:39

Java found applications in numerous unexpected places: Java Card, a highly constrained version for smart cards (e.g., Oyster cards, SIM cards), Java chips that moved the JVM into hardware for performance, the Java ring for identification, the KVM (Kilobyte Virtual Machine) for Palm Pilots, the Amazon Kindle's UI, and the Java Pen. Java also played a significant role in mobile phones (Java ME), interactive TV (Java TV), Blu-ray players, and even pseudo-JVMs for devices like Lego Mindstorms, showcasing its adaptability and 'write once, run anywhere' philosophy.

Evolution of Java Platform Features and Community
00:46:19

Ritter provides a rapid overview of key features introduced in various Java Development Kit (JDK) versions, including inner classes, JDBC, RMI, JIT compilation (JDK 1.1), collections framework (JDK 1.2), assert keyword, regular expressions (JDK 1.4), generics, annotations, autoboxing, enums, and concurrency utilities (JDK 5/Tiger). Later versions brought 'project coin' (small language changes) in JDK 7, lambdas and streams in JDK 8, and modularity in JDK 9. The presentation concludes by emphasizing Java's strong community, represented by JavaOne conferences, Java User Groups, and Java Champions, highlighting that Java is a thriving ecosystem, not just a platform.

Recently Summarized Articles

Loading...