The term Java actual refers to more than just a particular
language like C or Pascal. Java encompasses several parts, including
:
- A high level language –
the Java language is a high level one that at a glance looks very
similar to C and C++ but offers many unique features of its own.
- Java bytecode - a compiler,
such as Sun's javac,
transforms the Java language source code to bytecode that runs
in the JVM.
- Java Virtual Machine (JVM)
– a program, such as Sun's java,
that runs on a given platform and takes the bytecode programs
as input and interprets them just as if it were a physical processor
executing machine code. (See Chapter
24 for examples of processors that in fact do execute Java
bytecode directly.)
Sun provides a set of programming tools such as javac,
java
and others in a bundle that it calls a Java Software Development
Kit for each version of the language and for different platforms
such as Windows, Linux, etc.. Sun also provides a runtime bundle
with just the JVM when the programming tools are not needed.
Note that because of the open nature of Java (see below), any or
all of these parts can be replaced by non-Sun components. For example,
just as many different languages can create machine code for a given
processor, compilers of other languages have been created that output
bytecode to run in the JVM. Similarly, many JVMs have been written
by groups outside of Sun.
In this book and web course, when we use the term Java we are referring
to the the high level language unless noted otherwise. Also, those
packages that come with the SDK for a given version will be referred
to as comprising the core language for that version, as distinguished
from optional or third party packages.
Java,
Open or Closed?
Java is not quite an open language but not quite a proprietary
one either. All the core language products - compiler, virtual machines
(VM), class packages, and other components - are free. Detailed
specifications and source code are made openly available.
The Java Community Process
(JCP) leads the development of new standards for the language.
Other companies and organizations can legally create a clean
sheet compiler and/or a Virtual Machine as long as it follows
the publicly available specifications. Microsoft did this with the
Version 1.1 JVM that it used in its Internet Explorer browser.
Sun, however, does still assert final say on the specifications
and controls the copyrights to logos, and trademarks.
For example, Microsoft's VM differed in a some significant details
from the specifications and Sun accused Microsoft of attempting
to weaken Java's "write once, run anywhere" capabilities.
Sun sued Microsoft and the dispute was later settled out of court.
References and Web Resources
Latest update: Oct.9.2004
|