1.2. Key Benefits of Java
Why use Java at all? Is it worth learning a new language and a new
platform? This section explores some of the key benefits of Java.
1.2.1. Write Once, Run Anywhere
Sun identifies
"Write once, run
anywhere" as the core value proposition of the Java
platform. Translated from business jargon, this means that the most
important promise of Java technology is that you have to write your
application only oncefor the Java platformand then
you'll be able to run it
anywhere.
Anywhere, that is, that supports the Java platform. Fortunately, Java
support is becoming ubiquitous. It is integrated into practically all
major operating systems. It is built into the popular web browsers,
which places it on virtually every Internet-connected PC in the
world. It is even being built into consumer electronic devices such
as television set-top boxes, PDAs, and cell phones.
1.2.2. Security
Another key benefit
of Java is its security features. Both the language and the platform
were designed from the ground up with security in mind. The Java
platform allows users to download untrusted code over a network and
run it in a secure environment in which it cannot do any harm:
untrusted code cannot infect the host system with a virus, cannot
read or write files from the hard drive, and so forth. This
capability alone makes the Java platform unique.
Java
1.2 took the security model a step further. It made security levels
and restrictions highly configurable and extended them beyond
applets. As of Java 1.2, any Java code, whether it is an applet, a
servlet, a JavaBeans component, or a complete Java application, can
be run with restricted permissions that prevent it from doing harm to
the host system.
The
security features of the Java language and platform have been
subjected to intense scrutiny by security experts around the world.
In the earlier days of Java, security-related bugs, some of them
potentially serious, were found and promptly fixed. Because of the
strong security promises Java makes, it is big news when a new
security bug is found. No other mainstream platform can make security
guarantees nearly as strong as those Java makes. No one can say that
Java security holes will not be found in the future, but if
Java's security is not yet perfect, it has been
proven strong enough for practical day-to-day use and is certainly
better than any of the alternatives.
1.2.3. Network-Centric Programming
Sun's corporate
motto has always been "The network is the
computer." The designers of the Java platform
believed in the importance of networking and designed the Java
platform to be network-centric. From a programmer's
point of view, Java makes it easy to work with resources across a
network and to create network-based applications using client/server
or multitier architectures.
1.2.4. Dynamic, Extensible Programs
Java is both dynamic and
extensible. Java code is organized in modular object-oriented units
called classes. Classes are stored in separate
files and are loaded into the Java interpreter only when needed. This
means that an application can decide as it is running what classes it
needs and can load them when it needs them. It also means that a
program can dynamically extend itself by loading the classes it needs
to expand its functionality.
The network-centric design of the Java platform means that a Java
application can dynamically extend itself by loading new classes over
a network. An application that takes advantage of these features
ceases to be a monolithic block of code. Instead, it becomes an
interacting collection of independent software components. Thus, Java
enables a powerful new metaphor of application design and
development.
1.2.5. Internationalization
The
Java language and the Java platform were designed from the start with
the rest of the world in mind. When it was created, Java was the only
commonly used programming language that had internationalization
features at its core rather than tacked on as an afterthought. While
most programming languages use 8-bit characters that represent only
the alphabets of English and Western European languages, Java uses
16-bit Unicode characters that represent the phonetic alphabets and
ideographic character sets of the entire world.
Java's internationalization features are not
restricted to just low-level character representation, however. The
features permeate the Java platform, making it easier to write
internationalized programs with Java than it is with any other
environment.
1.2.6. Performance
As described earlier, Java programs are
compiled to a portable intermediate form known as byte codes, rather
than to native machine-language instructions. The Java Virtual
Machine runs a Java program by interpreting these portable byte-code
instructions. This architecture means that Java programs are faster
than programs or scripts written in purely interpreted languages, but
Java programs are typically slower than C and C++ programs compiled
to native machine language. Keep in mind, however, that although Java
programs are compiled to byte code, not all of the Java platform is
implemented with interpreted byte codes. For efficiency,
computationally intensive portions of the Java platformsuch as
the string-manipulation methodsare implemented using native
machine code.
Although early releases of Java suffered
from performance problems, the speed of the Java VM has improved
dramatically with each new release. The VM has been highly tuned and
optimized in many significant ways. Furthermore, most current
implementations include a just-in-time (JIT) compiler, which converts
Java byte codes to native machine instructions on the fly. Using
sophisticated JIT compilers, Java programs can execute at speeds
comparable to the speeds of native C and C++ applications.
Java is a portable, interpreted language; Java programs run almost as
fast as native, nonportable C and C++ programs. Performance used to
be an issue that made some programmers avoid using Java. With the
improvements made in Java 1.2, 1.3, 1.4, and 5.0, performance issues
should no longer keep anyone away.
1.2.7. Programmer Efficiency and Time-to-Market
The final, and perhaps most important,
reason to use Java is that programmers like it. Java is an elegant
language combined with a powerful and (usually) well-designed set of
APIs. Programmers enjoy programming in Java and are often amazed at
how quickly they can get results with it. Because Java is a simple
and elegant language with a well-designed, intuitive set of APIs,
programmers write better code with fewer bugs than for other
platforms, thus reducing development time.
|