addition of sound services.
25.14. javax.swing Swing GUI Components
The Swing components are a rich set of graphical user-interface controls. They are written to look and behave
for the user identically on all systems as far as possible. This is in contrast to the AWT components which rely
on the native GUI components. An AWT button will look like a Windows button on a Windows machine, a
Macintosh button on a Macintosh computer, and so forthits interaction with the program is the same on all
platforms, but the user will see the native look and feel. A Swing component can have the same look on all
platformsits code is written in the Java programming language. The look and feel is "pluggable"you or the
user can use one of the standard look-and-feels or invent one. Swing components are also give you more
control over the look and behavior of the system. You only occasionally need such control, but it is nice to
have it when you do need it.
The Swing components use the same event model as AWT and JavaBeans components, although the
components do define some new events.
Several subpackages define interface objects, tools for defining a custom pluggable look-and-feel, support
HTML and text editing, and support some of the more complex components, such as tree displays and tables.
25.15. org.omg.CORBA CORBA APIs
The package org.omg.CORBA, its various subpackages and other org.omg subpackages (such as
CosNaming) provide the mapping of the OMG CORBA APIs and services to the Java programming
language. (The package names are different from the standard core package names because they are defined
by the Object Management Group and incorporated into the core package set.) CORBA is a way to send
messages between processes that are not necessarily written in the same programming language. This is
distinct from RMI, which communicates between programs written, at least in part, in the Java programming
language (we use the phrase "at least in part" because RMI programs can include native code).
Programming today is a race between software engineers striving to build bigger and better
idiot-proof programs, and the universe trying to produce bigger and better idiots. So far the
universe is winning.
Rich Cook
Appendix A. Application Evolution
With every passing hour our solar system comes 43,000 miles closer to globular cluster M13
in the constellation Hercules, and still there are some misfits who continue to insist that there
is no such thing as progress.
Ransom K. Ferm
The Java platform has undergone a number of changes since it was first introduced, but none more significant
than those that occurred with the 5.0 release. While in general we try to avoid issues concerning the evolution
of the platform, it is impossible to ignore those issues now. For some time to come, there will be applications
and libraries that still comply with the older 1.3 version of the platform (as documented in the third edition of
this book), those that support the additional features introduced in the 1.4 release, and finally those moving