|
|
Java is an object-oriented programming language developed by James Gosling and colleagues at Sun Microsystems in the early 1990s. The language, which was designed to be platform independent, is a derivative of C++ with a simpler syntax, a more robust runtime environment and simplified memory management.
Java is not related to JavaScript, though they have similar names and share a C-like syntax.
The Java platform and language began as an internal project at Sun Microsystems in December of 1990. Engineer Patrick Naughton had become increasingly frustrated with the state of Sun's C++ and C APIs (application programming interfaces) and tools. While considering moving to NeXT, Naughton was offered a chance to work on new technology and thus the Stealth Project was started.
The Stealth Project was soon renamed to the Green Project with James Gosling and Mike Sheridan joining Naughton. Together with other engineers, they began work in a small office on Sand Hill Road in Menlo Park, California. They were 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 it was rejected for several reasons. Because they were developing an embedded system with limited resources, they decided that C++ demanded too large a footprint and that its complexity led to developer errors. The language's lack of garbage collection meant that programmers had to manually manage system memory, a challenging and error-prone task. The team was also troubled by the language's lack of portable facilities for security, distributed programming, and threading. Finally, they wanted a platform that could be easily ported to all types of devices.
Bill Joy had envisioned a new language combining the best of Mesa and C. In a paper called Further, he proposed to Sun that its engineers should produce an object-oriented environment based on C++. Initially, Gosling attempted to modify and extend C++, which he referred to as C++ ++ -- , but soon abandoned that in favor of creating an entirely new language, which he called Oak after the tree that stood just outside his office.
The team worked long hours and 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[1] which had a graphical interface and a smart agent called "Duke" to assist the user. In November of that year, the Green Project was spun off to become FirstPerson, Inc, a wholly owned subsidiary of Sun Microsystems, and the team relocated to Palo Alto. The FirstPerson team was interested in building highly interactive devices, and when Time Warner issued an RFP for a set-top box, FirstPerson changed their target and responded with a proposal for a set-top box platform. However, the cable industry felt that their platform gave too much control to the user and FirstPerson lost their bid to SGI. An additional deal with The 3DO Company for a set-top box also failed to materialize. Unable to generate interest within the TV industry, the company was rolled back into Sun.
Java meets the Internet
In June and July of 1994, after a three-day brainstorming session with John Gage, James Gosling, Joy, Naughton, Wayne Rosing, and Eric Schmidt, the team re-targeted the platform for the Web. They felt that with the advent of the Mosaic browser, the Internet was on its way to evolving into the same highly interactive medium that they had envisioned for cable TV. As a prototype, Naughton wrote a small web browser, WebRunner, later renamed HotJava.
That year, the language was renamed Java after a trademark search revealed that the name "Oak" was used by a manufacturer of video adaptor cards. The name Java was coined at a local coffee shop frequented by some of the members. It is not clear whether the name is an acronym or not; although some accounts claim that it stands for the names of James Gosling, Arthur Van Hoff, and Andy Bechtolsheim, or Just Another Vague Acronym, it is generally accepted that "Java" does not stand for anything. Lending credence to the idea that Java owes its name to the products sold at the coffee shop is the fact that the first 4 bytes (the so-called "Magic number") of any class file are, in hexadecimal, 0xCAFEBABE.
In October of 1994, HotJava and the Java platform was demonstrated for Sun executives. Java 1.0a was made available for download in 1994, but the first public release of Java and the HotJava web browser came on May 23, 1995, at the SunWorld conference. The announcement was made by John Gage, the Director of Science for Sun Microsystems. His announcement was accompanied by a surprise announcement by Marc Andreessen, Executive Vice President of Netscape, that Netscape would be including Java support in its browsers. On January 9th, 1996, the JavaSoft business group was formed by Sun Microsystems to develop the technology.[2] Two weeks later the first version of Java was released.
Recent history
After several years of popularity, Java's place in the browser has steadily eroded. For simple interactive animations, it has been almost completely superseded by Macromedia Flash and Shockwave. As of 2005 its use is mostly limited to more complex applications like Yahoo! Games. It has also suffered from a lack of support by Microsoft which no longer includes the Java platform with Internet Explorer or Windows.
By contrast, on the server side of the Web, Java is far more popular than ever, with many websites using JavaServer Pages and other Java-based technologies.
On the desktop, stand-alone Java applications remain relatively rare because of their large overhead. However, with the great advances in computer power in the last decade along with improvements in VM and compiler quality, several have gained widespread use, including the NetBeans and Eclipse Integrated development environments, and file sharing clients such as Limewire and Azureus. Java is also used in the Matlab mathematics program for rendering the user interface and for part of the calculation functionality. Java Swing desktop applications are being developed as an alternative to Microsoft .NET technology.
Version history
Java Web Start, first introduced for J2SE 1.3, allows provisioning applications over the Web by clicking a desktop icon or a link on a website.
Enlarge
Java Web Start, first introduced for J2SE 1.3, allows provisioning applications over the Web by clicking a desktop icon or a link on a website.
The Java language has undergone several changes since JDK (Java Development Kit) 1.0 as well as numerous additions of classes and packages to the standard library:
* JDK 1.0 (January 23, 1996) — Initial release.
* JDK 1.1 (February 19, 1997) — Major additions included:
o an extensive retooling of the AWT event model
o inner classes added to the language
o JavaBeans
o JDBC
o RMI
* J2SE 1.2 (December 8, 1998) — Codename Playground. This and subsequent releases through J2SE 5.0 were rebranded Java 2 and the version name "J2SE" (Java 2 Platform, Standard Edition) replaced JDK to distinguish the base platform from J2EE (Java 2 Platform, Enterprise Edition) and J2ME (Java 2 Platform, Micro Edition). Major additions included: [press release]
o strictfp keyword
o reflection
o the Swing graphical API was integrated into the core classes
o Sun's JVM was equipped with a JIT compiler for the first time
o Java Plug-in
o Java IDL, an IDL implementation for CORBA interoperability
o Collections framework
* J2SE 1.3 (May 8, 2000) — Codename Kestrel. The most notable changes were:[press release] [full list of changes]
o HotSpot JVM included (the HotSpot JVM was first released in April, 1999 for the J2SE 1.2 JVM)
o RMI was changed to be based on CORBA
o JavaSound
o JNDI included in core libraries (previously available as an extension)
o Java Platform Debugger Architecture (JPDA)
* J2SE 1.4 (February 6, 2002) — Codename Merlin. This was the first release of the Java platform developed under the Java Community Process (JCP). Major changes included: [press release][full list of changes]
o assert keyword
o regular expressions modeled after Perl regular expressions
o exception chaining allows an exception to encapsulate original lower-level exception
o non-blocking NIO (New Input/Output)
o logging API
o image I/O API for reading and writing images in formats like JPEG and PNG
o integrated XML parser and XSLT processor
o integrated security and cryptography extensions (JCE, JSSE, JAAS)
o Java Web Start included (Java Web Start was first released in March, 2001 for J2SE 1.3)
* J2SE 5.0 (September 30, 2004) — Codename Tiger. (Originally numbered 1.5, which is still used as the internal version number.) Added a number of significant new language features: [press release]
o Generics — provides compile-time (static) type safety for collections and eliminates the need for most typecasts
o Autoboxing/unboxing — automatic conversions between primitive types (such as int) and primitive wrapper classes (such as Integer)
o Metadata — also called annotations, allows language constructs such as classes and methods to be tagged with additional data, which can then be processed by metadata-aware utilities.
o Enumerations — the enum keyword creates a typesafe, ordered list of values (such as Day.MONDAY, Day.TUESDAY, etc.). Previously this could only be achieved by non-typesafe constant integers or manually constructed classes (typesafe enum pattern).
o Enhanced for loop — the for loop syntax is extended with special syntax for iterating over each member of any Iterable, such as an array or Collection, using a construct of the form:
|
|