Oak is a discontinued programming language created by
James Gosling
James Arthur Gosling (born 19 May 1955) is a Canadian computer scientist, best known as the founder and lead designer behind the Java (programming language), Java programming language.
Gosling was elected a member of the National Academy of E ...
in 1989, initially for
Sun Microsystems
Sun Microsystems, Inc., often known as Sun for short, was an American technology company that existed from 1982 to 2010 which developed and sold computers, computer components, software, and information technology services. Sun contributed sig ...
'
set-top box
A set-top box (STB), also known as a cable converter box, cable box, receiver, or simply box, and historically television decoder or a converter, is an information appliance device that generally contains a Tuner (radio)#Television, TV tuner inpu ...
project. The language later evolved to become
Java
Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
.
History
In 1985,
Sun Microsystems
Sun Microsystems, Inc., often known as Sun for short, was an American technology company that existed from 1982 to 2010 which developed and sold computers, computer components, software, and information technology services. Sun contributed sig ...
was attempting to develop a new technology for programming next generation smart appliances, which Sun expected to be a major new opportunity.
The team originally considered using
C++, but rejected the idea for several reasons (see
Java history).
Initially, Gosling attempted to modify and extend C++ but soon abandoned that in favor of creating a new platform called ''Green'' and an entirely new language, which he called Oak, after the
oak tree
An oak is a hardwood tree or shrub in the genus ''Quercus'' of the Fagaceae, beech family. They have spirally arranged leaves, often with lobed edges, and a nut called an acorn, borne within a cup. The genus is widely distributed in the Northe ...
that stood just outside his office.
By the summer of 1992, they were able to demonstrate portions of the new platform including the Green
OS, the Oak language, the libraries, and the hardware. Their first attempt, demonstrated on September 3, 1992, focused on building a
PDA device named ''Star7'' which had a graphical interface and a smart agent called "Duke" to assist the user.
Oak was renamed ''Java'' in 1994 after a
trademark
A trademark (also written trade mark or trade-mark) is a form of intellectual property that consists of a word, phrase, symbol, design, or a combination that identifies a Good (economics and accounting), product or Service (economics), service f ...
search revealed that ''Oak'' was used by
Oak Technology.
Java 1.0 was finally shipped in 1996.
Differences with Java
Oak was the basis for what Java 1.0 became later, but there were also some differences:
Several concepts were planned in the Oak specification but were not implemented in the original language because of time constraints:
*
Unsigned primitive types
In computer science, primitive data types are a set of basic data types from which all other data types are constructed. Specifically it often refers to the limited set of data representations in use by a particular processor, which all compiled ...
turned out never to be implemented in Java.
* The ''enum'' keyword for
enumerated type
In computer programming, an enumerated type (also called enumeration, enum, or factor in the R (programming language), R programming language, a status variable in the JOVIAL programming language, and a categorical variable in statistics) is a data ...
s was implemented in Java for
Java 5.0.
* The
assert keyword was implemented in Java for
Java 1.4
Other concepts were different from, or improved later, for Java:
*
Abstract methods were defined as in
C++.
* While the Oak default
access level was the same as Java's (default)
package private access level, it was called "private". Oak did not have an equivalent to Java's
private
access modifier.
And finally some concepts were later scraped out:
* All
exceptions were
unchecked.
* It was possible by the ''unprotect'' keyword to write code that would not signal
asynchronous exceptions.
* There was some support for
Design by Contract: Oak had
assertions whereby
Class variable could be constrained and the constraints were enforced at entry and exit of every public and protected method of the class. Methods could also have their own
pre-conditions and
post-conditions, which were inherited but not redefinable in a subclass.
See also
*
Java (programming language)
Java is a High-level programming language, high-level, General-purpose programming language, general-purpose, Memory safety, memory-safe, object-oriented programming, object-oriented programming language. It is intended to let programmers '' ...
*
Java version history
References
External links
Oak language specificationJava early history
{{DEFAULTSORT:Oak (Programming Language)
Java (programming language)
C programming language family
Sun Microsystems
Class-based programming languages
Object-oriented programming languages
Cross-platform software
Programming languages created in 1991