Oak (programming language)
| Company type | Programming language |
|---|---|
| Industry | Software development |
| Founded | 1989 |
| Founder | James Gosling |
| Parent | Sun Microsystems |
Oak was a programming language developed by James Gosling in 1989 at Sun Microsystems as part of a project focused on set-top box technology. This language eventually transformed into what is now known as Java.
History
In 1985, Sun Microsystems identified a significant market potential in the development of advanced smart appliance technologies. Initially, the team considered using C++, but after evaluating its limitations, they decided against it. Gosling initially attempted to adapt C++ but soon moved towards creating an entirely new platform called Green along with a new programming language named Oak, inspired by the oak tree visible from his office window.
By mid-1992, Sun had presented components of the Green platform, which included the Oak language, supporting libraries, and custom hardware. Their initial demonstration took place on September 3, 1992, featuring the Star7, a personal digital assistant equipped with a graphical user interface and an intelligent agent known as "Duke".
When it was discovered that the name Oak was already trademarked by Oak Technology, the language was renamed to Java in 1994. The first official release, Java 1.0, became available in 1996.
Differences with Java
Although Oak served as the basis for Java 1.0, several distinctions existed between the two languages:[1]Cite error: The opening <ref> tag is malformed or has a bad name
Certain features intended for Oak were omitted from Java due to development time limitations:
- Java never incorporated unsigned primitive types.Cite error: The opening
<ref>tag is malformed or has a bad name - The enum keyword for defining enumerated types was introduced only in Java 5.0.
- The assert keyword became part of Java starting with version 1.4.Cite error: The opening
<ref>tag is malformed or has a bad name
Other aspects evolved or differed in Java compared to Oak:[1]
- Oak’s abstract methods followed a style similar to C++.
- The default access level in Oak was termed "private" but functioned like Java's package-private; notably, Oak did not have a true
privatemodifier.
Several features present in Oak were later removed:
- All exceptions in Oak were unchecked.
- The unprotect keyword permitted code to ignore asynchronous exception signaling.
- Oak supported Design by Contract principles through assertions that enforced constraints on class variables and method preconditions and postconditions; these were inherited but could not be overridden by subclasses.Cite error: The opening
<ref>tag is malformed or has a bad nameCite error: The opening<ref>tag is malformed or has a bad name