Preface

Java is an important new programming language, designed by a team
at Sun Microsystems. Many of you
will have heard of it in the context of the Internet, which is where
it made its initial impact. Sun started developing Oak, the forerunner
of Java, in 1990. Java was released in 1993 and has grown from nothing
to become widely accepted as one of the world's most important
programming languages. All major web browsers now support Java and
companies such as Microsoft
and Apple are already building
support into their operating systems. Many of the new Network
Computers will run little other than Java programs.

At present, Java is usually thought of as a means of embedding fancy
graphics or interaction into web pages. However, it is capable of much
more than this. In fact, it is a language comparable to any other:
Fortran, C, C++, Pascal or Modula-3. It provides all of the standard
language constructs that you would expect and a standard library which
goes beyond what any of these provides. It is available on most
systems: Windows, Macintosh, Solaris,
Linux and many others, including
almost all varieties of UNIX.

As you will see later in this book, Java is capable of matrix
manipulation, RSA encryption, computing pi and all of the other types
of computation that a scientific programmer might want to perform.

With most of the computer industry backing it, we can expect
further exciting developments over the next few years.

In addition, if you are involved in any kind of teaching then Java
provides two further benefits.

Java code can be run in a web browser over the Internet, allowing
you to write demonstration programs which your students will be able
to run at any connected computer.

From a student's point of view, knowledge of Java is a very
marketable skill. Many courses include computer projects, usually
performed in a language such as Pascal. By doing such projects in
Java, the student loses nothing, since the basic syntax is as easy to
learn, but gains all of the advantages listed above, such as better
standard library support. In addition, the student gains experience
with a language which is actually used in the computer industry.

This book has a fast track for those who already know C/C++, which
are superficially similar, and also a more elementary introduction
for students who have done no previous computing. Whichever category
you are in, I have tried to provide an easier introduction to the
subject than many other books on Java. No knowledge of any particular
programming language is assumed, nor is any familiarity with object
orientation.