ACCU Home page ACCU Conference Page
Search Contact us ACCU at Flickr ACCU at GitHib ACCU at Google+ ACCU at Facebook ACCU at Linked-in ACCU at Twitter Skip Navigation

Search in Book Reviews

The ACCU passes on review copies of computer books to its members for them to review. The result is a large, high quality collection of book reviews by programmers, for programmers. Currently there are 1918 reviews in the database and more every month.
Search is a simple string search in either book title or book author. The full text search is a search of the text of the review.
    View all alphabetically
Title:
Technical Java
Author:
Grant Palmer
ISBN:
0 13 101815 9
Publisher:
Prentice Hall
Pages:
466pp
Price:
£39.99
Reviewer:
Ivan Uemlianin
Subject:
java
Appeared in:
16-6
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.