Time to open the Champagne -- Java 1.5 is out, and the language has finally come of age! With the new Java 1.5 specification, Java now contains features that make it feel like a proper "grown-up" language. The rest of this article will introduce you to these new features. To try out the features for yourself, simply download Java 1.5 from Sun’s website and give it a whirl. Note that you’ll need to compile the code using the –source 1.5 option; otherwise, you’ll get compilation errors when using the new features.
Compared to many other languages, such as FORTRAN and LISP, Java is a relative newcomer on the scene. However, it has matured rapidly.
Java started out in 1995 as a simple C-like language whose main advantages were automatic garbage collection and the ability to bring web pages to life with applets. Early in the development of the World Wide Web, Sun and Netscape announced that Java 1.0 would be included in Netscape Navigator, the most popular web browser at the time. In 1997, Java 1.1 brought a more scalable events model for the programming of graphical user interfaces and the introduction of inner classes. Java 1.2 and 1.3 saw the introduction of the Collections framework, incremental improvements in Swing GUI components, and the introduction of countless other libraries and Application Programmer Interfaces (APIs), such as JavaMail and the Java Speech API. We also saw the rise of Java as a server-side language, with Java Server Pages (JSPs) and Java Enterprise Beans. In 2002, Java 1.4 introduced assertions into the core language, and a logging facility.
But now (in cinematic voice, accompanied by fanfare of trumpets) Sun has released Java 2, Standard Edition Developers' Kit, 1.5.0 Beta 1!
Okay, it's still only a Beta release, so it's not a package that you would use for serious software development, but it provides a great opportunity to try out some of the latest feature offerings. This is the first major new release of Java in two years, and it really brings the language forward. The changes are not just the addition of new libraries, but the addition of the following new features to the language itself: