Sun Microsystems introduced Java in May 1995, primarily touting it as a programming language and platform designed to revolutionize the World Wide Web and electronic devices.
"Write Once, Run Anywhere" (WORA)
Key Features and Goals (as defined by Sun)
This image shows a diagram of the Java Virtual Machine (JVM) simple architecture. It's organized into three main components within a larger "JVM" box:
CLASSLOADER SUBSYSTEM: On the left, it has a box for "Loading/Linking/Initialization" and "Verification/Preparation". Arrows flow from these stages towards the "RUNTIME DATA AREA".
RUNTIME DATA AREA: In the center, this section contains several interconnected boxes:
"Method Area" with an arrow pointing to "Heap". Both are labeled "Shared by all threads".
Below the "Method Area" is another "Heap" box.
Below that, two "Stack" boxes are shown. An arrow from "Linking" in the Class loader Subsystem points to the "Stack" boxes.
EXECUTION ENGINE: On the right, this component includes:
"Interpreter"
"JIT Compiler" (Just-In-Time Compiler)
"Garbage Collector" An arrow flows from the "RUNTIME DATA AREA" (specifically from the "Stack" boxes) to the "Execution Engine".
Essentially, it illustrates how Java bytecode is loaded, organized in memory, and then executed within the JVM.
The core promise and philosophy, often summarized by the famous motto, was:
This phrase captured Java's major breakthrough: the ability to compile code into an intermediate format called bytecode, which could then be executed by a Java Virtual Machine (JVM) on any operating system or hardware platform. This solved the major headaches of porting software that plagued earlier languages like C and C++.
Sun Microsystems designed Java to meet five primary goals, which highlighted its advantages over existing languages like C++:
Simple, Object-Oriented, and Familiar: It was designed to be easy for C++ programmers to learn but removed complex and error-prone features like pointers and manual memory management.
Robust and Secure: It included automatic garbage collection for memory management (improving robustness) and implemented a security model to protect users from malicious programs (crucial for web-based applications).
Architecture-Neutral and Portable: This is the "Write Once, Run Anywhere" promise, achieved via the platform-independent Java bytecode and the JVM.
High Performance: Although initially interpreted, the design goal included features like the Just-In-Time (JIT) compiler to ensure high-speed execution.
Interpreted, Threaded, and Dynamic: These qualities allowed it to execute code on the fly (interpreted), handle multiple tasks simultaneously (threaded/multithreading), and load code dynamically, making it ideal for the rapidly evolving, distributed environment of the Internet.
In essence, Sun Microsystems presented Java as the universal language for the Internet and the next generation of computing devices, moving beyond desktop software to power everything from set-top boxes and smart appliances to interactive web content via Java Applets.
