In 1990, Sun Microsystems started a project
called Green.
– Objective: to develop software for
consumer electronics.
– Sun best known for its popular Unix
workstation, Solaris OS, and Network
File System (NFS).
- The team started writing programs in C++ for
embedding into
– toasters
– washing machines
– VCR’s
– PDA’s (Personal Digital Assistants)
• Aim was to make these appliances more
“intelligent”. But they soon realized...
called Green.
– Objective: to develop software for
consumer electronics.
– Sun best known for its popular Unix
workstation, Solaris OS, and Network
File System (NFS).
- The team started writing programs in C++ for
embedding into
– toasters
– washing machines
– VCR’s
– PDA’s (Personal Digital Assistants)
• Aim was to make these appliances more
“intelligent”. But they soon realized...
• C++ is powerful, but also dangerous.
– The power and popularity of C derived
from the extensive use of pointers.
– However, any incorrect use of pointers
can cause memory leaks, leading the
program to crash.
– In a complex program, such memory
leaks are often hard to detect.
– The power and popularity of C derived
from the extensive use of pointers.
– However, any incorrect use of pointers
can cause memory leaks, leading the
program to crash.
– In a complex program, such memory
leaks are often hard to detect.
• Robustness is essential
– Users have come to expect that
Windows may crash or that a program
running under Windows may crash.
(“This program has performed an illegal
operation and will be shut down”)
– However, users do not expect toasters to
crash, or washing machines to crash.
– A design for consumer electronics has
to be robust. Replacing pointers by
references, and automating memory
management was the proposed solution.
– Users have come to expect that
Windows may crash or that a program
running under Windows may crash.
(“This program has performed an illegal
operation and will be shut down”)
– However, users do not expect toasters to
crash, or washing machines to crash.
– A design for consumer electronics has
to be robust. Replacing pointers by
references, and automating memory
management was the proposed solution.
• Oak: Hence, the team built a new programming
language called Oak, which
– avoided potentially dangerous
constructs in C++, such as pointers,
pointer arithmetic, operator overloading
etc.
– introduced automatic memory
management, freeing the programmer to
concentrate on other things.
language called Oak, which
– avoided potentially dangerous
constructs in C++, such as pointers,
pointer arithmetic, operator overloading
etc.
– introduced automatic memory
management, freeing the programmer to
concentrate on other things.
• Architecture neutrality (Platform independence)
– Many different CPU’s are used as
controllers. Hardware chips are evolving
rapidly. As better chips become
available, older chips become obsolete
and their production is stopped.
– Manufacturers of toasters and washing
machines would like to use the chips
available off the shelf, and would not like
to reinvest in compiler development
every two-three years.
– So, the software and programming
language had to be architecture neutral.
– Many different CPU’s are used as
controllers. Hardware chips are evolving
rapidly. As better chips become
available, older chips become obsolete
and their production is stopped.
– Manufacturers of toasters and washing
machines would like to use the chips
available off the shelf, and would not like
to reinvest in compiler development
every two-three years.
– So, the software and programming
language had to be architecture neutral.
• It was soon realized that these design goals of
consumer electronics perfectly suited an ideal
programming language for the Internet and
WWW, which should be:
– object-oriented (& support GUI)
– robust
– architecture neutral
consumer electronics perfectly suited an ideal
programming language for the Internet and
WWW, which should be:
– object-oriented (& support GUI)
– robust
– architecture neutral
• Internet programming presented a BIG business
opportunity. Much bigger than programming for
consumer electronics.
– Java was “re-targeted” for the Internet
opportunity. Much bigger than programming for
consumer electronics.
– Java was “re-targeted” for the Internet
• In 1994, an early web browser called WebRunner
was written in Oak. WebRunner was later
renamed HotJava.
was written in Oak. WebRunner was later
renamed HotJava.
• In 1995, Oak was renamed Java.
– A common story is that the name Java
relates to the place from where the
development team got its coffee.
– The name Java survived the trade mark
search.
– A common story is that the name Java
relates to the place from where the
development team got its coffee.
– The name Java survived the trade mark
search.
• Additional features were added to make Java
– secure
– multithreaded (concurrent)
– distributed and dynamic
– high performance
– secure
– multithreaded (concurrent)
– distributed and dynamic
– high performance
->Ramesh Parajuli