REVIEW - Technical Java - Developing Scientific and Engineering Applications


Technical Java

Developing Scientific and Engineering Applications


Grant Palmer



Prentice Hall Professional (2003)




Ivan Uemlianin


December 2004



Technical Java has two target audiences: the newcomer to Java from a natural science background; the seasoned programmer who is sceptical about using Java in this domain. I recommend the book for either audience.

The book has four parts. The first set of chapters deals briefly with Java's differences with Fortran, C and C++. The second section (chapters 5-16) covers the Java language itself. Then comes the 'technical' section (chapters 17-24) on mathematical modelling. The examples covered in this section come primarily from fluid mechanics (modelling gas mixtures, air flow, etc.), but the techniques are general, and include the Fourier transform. Finally, come three chapters on building the i/o wrappers (simple i/o, GUI and web) that turn models into applications.

Each of the technical chapters has a good project feel. A problem is clearly stated, along with its mathematical representation. In discussing a Java solution, due consideration is given to analysis and design (e.g., class hierarchies, public methods). The code that implements the mathematics is a succinct and 'obvious' response to the problem as defined. These are good examples of how to approach scientific programming.

Those who know the language can safely skip the first 16 chapters, but for those new to Java, these chapters provide a workable introduction. In particular, the science and engineering flavour is there right from the beginning: instead of "Hello world!" we have "compute area of circle"; interfaces are illustrated by an "Electrostatic interface ... to be implemented by classes that represent charged bodies".

The language is terse almost to the point of being brusque ("If you want to create a GUI with Fortran you are out of luck"), but very clear. The author favours simple, direct sentences. This makes the text easy to follow. Similarly, it is easy to navigate, as the relevance of any particular section is apparent immediately.

The content seems clear and correct - apart from the peculiar assertion in the C and C++ chapters that Java has no void type (the most common line of code in the book is 'public static void main(String args[]) {'). I was surprised to find no discussion of floating point arithmetic, as this can be relied on to trip up the uninitiated.

This book will be useful to people evaluating languages for a scientific project. Although it cannot answer the question of whether Java is *the* language to use for scientific programming, it certainly makes a good case.

For the right person, this book could also be a good introduction to Java. I imagine someone from a natural science background would feel very at home with it, just as I did.

Book cover image courtesy of Open Library.

Your Privacy

By clicking "Accept Non-Essential Cookies" you agree ACCU can store non-essential cookies on your device and disclose information in accordance with our Privacy Policy and Cookie Policy.

Current Setting: Non-Essential Cookies REJECTED

By clicking "Include Third Party Content" you agree ACCU can forward your IP address to third-party sites (such as YouTube) to enhance the information presented on this site, and that third-party sites may store cookies on your device.

Current Setting: Third Party Content EXCLUDED

Settings can be changed at any time from the Cookie Policy page.