History of JAVA
In 1991, a group of Sun Microsystems engineers led by James Gosling decided to
develop a language for consumer devices (cable boxes, etc.). They wanted the
language to be small and use efficient code since these devices do not have
powerful CPUs. They also wanted the language to be hardware independent since
different manufacturers would use different CPUs. The project was code-named
Green.
These conditions led them to decide to compile the code to an intermediate
machine-like code for an imaginary CPU called a virtual machine. (Actually, there
is a real CPU that implements this virtual CPU now.) This intermediate code
(called bytecode) is completely hardware independent. Programs are run by an
interpreter that converts the bytecode to the appropriate native machine code.
Thus, once the interpreter has been ported to a computer, it can run any
bytecoded program.
Sun uses UNIX for their computers, so the developers based their new language
on C++. They picked C++ and not C because they wanted the language to be
object-oriented. The original name of the language was Oak. However, they soon
discovered that there was already a programming language called Oak, so they
changed the name to Java.
The Green project had a lot of trouble getting others interested in Java for smart
devices. It was not until they decided to shift gears and market Java as a language
for web applications that interest in Java took off. Many of the advantages that
Java has for smart devices are even bigger advantages on the web.
Currently, there are two versions of Java. The original version of Java is 1.0. At
the moment (Nov. 1997), most browsers only support this version. The newer
version is 1.1 (in addition 1.2 is in beta). Only MS Internet Explorer 4.0 and Sun's
HotJava browsers currently support it. The biggest differences in the two versions
are in the massive Java class libraries. Unfortunately, Java 1.1 applets will not run
on web browsers that do not support 1.1. (However, it is still possible to create
1.0 applets with Java 1.1 development systems.)