Oak (programming language)
The name Oak was used by Gosling after an oak tree that stood outside his office.
In 1991, Sun Microsystems was attempting to develop a new technology for programming next generation smart appliances, which Sun expected to be a major new opportunity.
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 device named Star7 which had a graphical interface and a smart agent called "Duke" to assist the user.
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 remained 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 types 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:
- As stated in the Oak specification, integer variable types did not affect their storage allocation. For example byte or short values were stored on 4 bytes of memory. This changed in Java 1.4.
- 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
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.
- Jon Byous (March 12, 2003). "Java Technology: An early history" (PDF). Sun Microsystems. Retrieved 2009-08-02.
Gosling called the new language "Oak", after the tree outside his window
- Kieron Murphy (April 10, 1996). "So why did they decide to call it Java?". javaworld.com. Retrieved 2009-08-03.
The lawyers had told us that we couldn't use the name 'OAK' because [it was already trademarked by] Oak Technologies," said Frank Yellin, a senior engineer at Sun. "So a brainstorming session was held to come up with ideas for a new name
- Jonathan I. Schwartz (August 30, 2007). "Different Isn't Always Better, But Better's Always". Retrieved 2009-08-02.
- Heinz Kabutz (July 15, 2003). "Once Upon an Oak ...". artima.com. Retrieved 2009-08-02.
- "Oak language specification". FirstPerson, Inc. Retrieved 2015-03-06.
- "Java and unsigned int, unsigned short, unsigned byte, unsigned long, etc. (Or rather, the lack thereof)". Retrieved 2009-08-02.
- "A Simple Assertion Facility For the Java Programming Language". Sun Microsystems. Retrieved 2009-08-02.
- Johannes Rieken (April 24, 2007). "Design by Contract for Java - Revised" (PDF). Retrieved 2010-10-02.
- "Support For 'Design by Contract', beyond "a simple assertion facility"". Sun Microsystems. Retrieved 2010-10-02.