Java?? Why You Shall Dedicate Time to Learn More About It!
By: Mahder Alemayehu, mahderalem@gmail.com
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.
Here is a little something I have collected from books and my own
experience. Of course I may be biased for java is my first choice as
a programming language. But, you can see that its true after a little
while.
A. 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 only have to write your application once--for the Java
platform--and 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, or being 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.
B. 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: it
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.
The Java 2
Platform takes the security model a step further. It makes security
levels and restrictions highly configurable and extends 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.
Security-related bugs, some of them potentially serious, have been
found and promptly fixed. Because of the security promises Java
makes, it is big news when a new security bug is found. Remember,
however, that no other mainstream platform can make security
guarantees nearly as strong as those Java makes. 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.
C. 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 unbelievably easy to work
with resources across a network and to create network-based
applications using client/server or multitier architectures. This
means that Java programmers have a serious head start in the emerging
network economy.
D. 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.
E. Internationalization
The Java
language and the Java platform were designed from the start with the
rest of the world in mind. Java is the only commonly used programming
language that has internationalization features at its very 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.
F. Performance
As I 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 they 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
platform--such as the string-manipulation methods--are 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, many implementations include a just-in-time 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, non-portable C and C++ programs. Performance used to be an
issue that made some programmers avoid using Java. Now, with the
improvements made in Java 1.2, performance issues should no longer
keep anyone away. In fact, the winning combination of performance
plus portability is a unique feature no other language can offer.
G. 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
well-designed set of APIs. Programmers enjoy programming in Java and
are usually amazed at how quickly they can get results with it.
Studies have consistently shown that switching to Java increases
programmer efficiency. 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, again reducing
development time.
Feel
free to add your comments and suggestions to this post. Hope to see
you in another post soon.
0 comments: