HOME

TheInfoList



OR:

Oak is a discontinued programming language created by
James Gosling James Gosling (born May 19, 1955) is a Canadian computer scientist, best known as the founder and lead designer behind the Java programming language. Gosling was elected a member of the National Academy of Engineering in 2004 for the conception ...
in 1989, initially for
Sun Microsystems Sun Microsystems, Inc. (Sun for short) was an American technology company that sold computers, computer components, software, and information technology services and created the Java programming language, the Solaris operating system, ZFS, t ...
'
set-top box A set-top box (STB), also colloquially known as a cable box and historically television decoder, is an information appliance device that generally contains a TV-tuner input and displays output to a television set and an external source of s ...
project. The language later evolved to become
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
. The name ''Oak'' was used by Gosling after an
oak tree An oak is a tree or shrub in the genus ''Quercus'' (; Latin "oak tree") of the beech family, Fagaceae. There are approximately 500 extant species of oaks. The common name "oak" also appears in the names of species in related genera, notably ''L ...
that stood outside his office.


History

In 1985,
Sun Microsystems Sun Microsystems, Inc. (Sun for short) was an American technology company that sold computers, computer components, software, and information technology services and created the Java programming language, the Solaris operating system, ZFS, t ...
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++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
, 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 tree 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 PDA may refer to: Science and technology * Patron-driven acquisition, a mechanism for libraries to purchase books *Personal digital assistant, a mobile device * Photodiode array, a type of detector * Polydiacetylenes, a family of conducting po ...
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 type of intellectual property consisting of a recognizable sign, design, or expression that identifies products or services from a particular source and distinguishes them from ot ...
search revealed that ''Oak'' was used by
Oak Technology Oak Technology was an American supplier of semiconductor chips for sound cards, graphics cards and optical storage devices such as CD-ROM, CD-RW and DVD. It achieved success with optical storage chips and its stock price increased substantially ...
. 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 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, and a categorical variable in statistics) is a data type consisting of a set of named values called ''elements'', ''members'', '' ...
s was implemented in Java for Java 5.0. * The assert keyword was implemented in Java for
Java 1.4 The Java language has undergone several changes since JDK 1.0 as well as numerous additions of classes and packages to the standard library. Since J2SE 1.4, the evolution of the Java language has been governed by the Java Community ...
Other concepts were different from, or improved later, for Java: * Abstract
methods Method ( grc, μέθοδος, methodos) literally means a pursuit of knowledge, investigation, mode of prosecuting such inquiry, or system. In recent centuries it more often means a prescribed process for completing a task. It may refer to: *Scien ...
were defined as in
C++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
. * While the Oak default
access level In computer science and computer programming, access level denotes the set of permissions or restrictions provided to a data type. Reducing access level is an effective method for limiting failure modes, reducing debugging time, and simplifying ...
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, class-based, object-oriented programming language that is designed to have as few implementation dependencies as possible. It is a general-purpose programming language intended to let programmers ''write once, run anyw ...
*
Java version history The Java language has undergone several changes since JDK 1.0 as well as numerous additions of classes and packages to the standard library. Since J2SE 1.4, the evolution of the Java language has been governed by the Java Community P ...


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