A Short History of Java: Platform Independent (Meaning That The Same Program Can Run On A Wide
A Short History of Java: Platform Independent (Meaning That The Same Program Can Run On A Wide
A Short History of Java: Platform Independent (Meaning That The Same Program Can Run On A Wide
The story of Java can be traced to early 1991 when a team of engineers led variety of platforms).
by James Gosling, at Sun Microsystems was formed to explore opportunities
in the consumer electronics market. This effort was eventually referred to as In January 1995, Oak was renamed Java (as the name Oak was already in
the “Green” project. The aim of the project was to build a distributed system use), and developed into a robust programming language for building
that would allow consumer electronic devices to talk to each other in a WWW-based applications. As a proof-of-concept, they developed a web-
heterogeneous network as a business product that they can sell as modern browser known as HotJava (written in Java) that is capable of running mini
software technology to consumer electronics’ manufacturers. Java applications (known as Applets) that are embedded in WWW pages.
This feature of HotJava was then taken up by Netscape and Microsoft. Later
The engineers of the Green project started with C++ as their choice of in 1995 Sun released the initial Java Development Kit (JDK) and HotJava.
language. However, in order to accommodate the consumer market’s From then on Java has become increasingly popular.
demand for CPU flexibility, they wanted to make the development a more
platform-neutral process, and this required extending the C++ compiler. So, what is Java?
Eventually, however, they realized that even with lots of extras, C++ would In the Java whitepaper (available for Sun’s website http://java.sun.com), Sun
not suffice, not to mention that C++ is a complex language in its own and describes Java as follows: Java is a simple, object-oriented, distributed,
current form. This has lead to the development of a new programming interpreted, robust, secure, architectural neutral, portable, high-
language – Oak – named after a tree that James Gosling could see from his performance, multithreaded, and dynamic language.
office window. A key commercial use of Oak was to be the programming
language for interactive cable TV control devices and electronic home While this seems like a string of buzzwords, but the fact is that these
management systems. After months of hacking on Oak, the Green team buzzwords actually describe the language and its features. To get a feeling of
produced an operating system, a toolkit, and interface, a new hardware why Java is important and interesting, let’s look at the features behind some
platform, three custom chips, and they delivered a PDA-like device called of these buzzwords.
“*7” that Gosling calls a “handheld remote control”.
Java is Simple
In 1993, the Green team (incorporated as FirstPerson Inc.) got a request for a One of the design goals of Java was to make it much easier to write bug-free
proposal for a set-top box operating system and video-on-demand code. In order to help programmers with this, the language has to be simple.
technology. FirstPerson placed a pid, but despite being told that they have The simplicity of Java makes it fun to program with, and its programs are
the best technology, they did not win the pid (SGI did) due to what Gosling easy to write and read.
characterizes as wholly non-technical reasons, such as business politics.
FirstPerson kept trying to pursue set-top boxes until 1994, when it concluded If you have programmed in C or C++, you would know that half of the bugs
that the market was not real. FirstPerson dissolved and about half of its staff in your programs are related to memory allocation. With Java you will not
moved to Sun Interactive to digital video data servers. have this problem as the Java runtime environment provides automatic
memory allocation and garbage collection.
By mid-1994, the Internet in general and the World Wide Web (WWW) in
particular exploded into widespread use. The Green team decided on Java is Object-Oriented
adapting the Oak language to the needs of the Internet and provide an Object-Oriented (OO) programming was the catch phrase of the 1990’s. As
Internet programming language for WWW-based applications. The decision a marketing strategy, many companies claim that their software is object-
was made because Oak included many features that were relevant to the oriented, when in fact they are not. An earlier computer scientist (S. King?)
WWW environment, including the idea of being architecturally neutral and claimed that if someone wanted to sell his cat, he should not say it is clean,
Java is Distributed
As I mentioned earlier, the aim of the Green project was to build a
distributed system that would allow all consumer electronic devices to talk
to one another. Since this was a design goal, Java provides a lot of high-level
support for networking. You will see more of this next year!
Java is Interpreted
Java is an interpreted language. This means that Java programs are not
compiled into machine platform-dependant language. But rather they are
compiled into byte-codes for the Java Virtual Machine (JVM). To run Java
programs, you use the Java interpreter to run the Java byte-codes. Java byte-
codes are platform-independent, which means they can run on any platform
with a Java interpreter. One catch of interpreted code is that it is a bit slower
than machine code when it runs. However, with all the Java optimization
techniques and Just In-Time Compilers technology (JIT), Java byte-codes
will run as fast as C or C++ compiled code.
Java is Robust
Buggy software can be written in any language, and Java is no exception.
However, Java eliminates certain types of programming errors and that
makes it easier to write reliable software. Java is a strongly typed language
and that allows for extensive compile-time checking. Also, the fact that Java
does not have pointers eliminates another class of memory-related bugs.