Here we list some of the major benefits that Java can provide for
general science and engineering applications:
- Platform Independence
Scientists use more types of computers and OS's that most other
groups. Code that can be exchanged without requiring rewrites
and recompilation saves time and effort.
- Object Oriented
Besides the usual
benefits from OOP, many scientific programs can benefit from
thinking in terms of objects. For example, particles in a scattering
simulation are naturally self-contained objects.
- Threading
Multi-processing is very useful for many scientific tasks, such
as, for example, simulations of phenomena where many processes
occur simultaneously.
- Networking
Java comes with many networking capabilities that allow one to
build distributed systems. Such capabilities can be applied, for
example, to remote data taking from sensors.
- Embedded Applications
The original Oak language from which Java derived was intended
for embedded applications.
Platform independence and the other items mentioned above, as
well as the adaptability of Java that allows it to work on micro-sized
platforms by shedding nonessential code, has made Java very popular
for use in embedded devices such as smart cards and cell phones.
It can thus also be embedded into sensors, controllers, and other
types of engineering and scientific devices. See Chapter
23 for more discussion about this.
- Distributed Computing
In chapters 16-20
we will examine how Java can effectively distribute computational
power over many systems and use this capability to tackle tough
scientific and engineering analysis problems.
- Interfacing & Enhancing Legacy
Code
Java's strong graphics and networking capabilities can be applied
to existing C & Fortran programs. There have been mountains
of very important and complex programs, especially for numerically
intensive tasks, created over the decades in these languages and
it would be too expensive to reprogram them in a different language.
Java, however, can connect to such programs and bring to them
new capabilities. For example, a Java graphical interface can
bring enhanced ease of use to a Fortran or C program, which then
acts as a computational engine behind the GUI.
Similarly, Java's networking features can bring far greater accessiblity
to these programs.
Latest update: Dec.10.2003
|