Mac OS X for Java Geeks
Posted: 4-Oct-2003

Mac Guild Grade

Publisher: O'Reilly


Reviewer: Robert Hanno $39.95

Mac OS X for Java Geeks

Will Iverson
ISBN: 0-596-00400-1
Publish Date: April 2003. Pages: 260
Retail: $39.95

What the Book is About
With the introduction of Jaguar adding to OS X's stability and Apple's renewed devotion to developers with the JDK 1.4 implementation and continued improvements to its free Developer Tools, the Macintosh is now a pre-eminent platform for developing Java applications for all platforms. Recognizing the need for an introduction for the "switchers" in the developer world, Will Iverson and O'Reilly have produced this book.

Iverson's goal is to introduce us (and the Mac OS X initiates) into the Mac OS X world and Apple Java way. He follows a brief (4-page) orientation to OS X with a dozen pages of Apple's Java implementation. A chapter on the tools available for developing on the Macintosh rounds out the easy stuff. From thereon out it's Java 201 --- lots of Java code (complete examples found at for the typing-challenged), much discussion of that code, Apple-specific extensions, and coding practices and hints for cross-platform compatibility.

Target Audience
Experienced programmer with Java and Unix background. Macintosh familiarity is not required.

What To Expect
Code, code discussion, best practices for Mac and cross-platform coding and more code. Now this is not meant to belittle the amount of code in this book since that is how programmers learn to program. At page 45, ten and one-half pages of Java code follows. Iverson introduces the SimpleEdit application and proceeds to add Macintosh functionality with a plugin mechanism to function as the API to Finder integration and other Mac-specific properties. This isolates the Apple Java code and reduces incompatibilities when compiling for other platforms. A chapter is devoted to cross-platform issues but hints continue throughout the book.

Packaging your application as a stand-alone or web application is discussed at length as befits the requirement that the user's first impressions be positive and that installation should be as simple as possible as befits Mr. Jobs's machine.

Three chapters delve more deeply into other Macintosh-specific applications and frameworks including Mac OS X Speech, QuckTime for Java (cross-platform and available at and Mac OS X Spelling.

The set-up (initial installation and JDBC configuration) of MySQL and PostgreSQL (and a paragraph or two for Oracle 9i) databases follows. The final chapters discuss JSP, Tomcat, EJBs, JBoss and Web Services. The code is a bit more scarce in the later chapters, but much of the difficulties involved with these technologies lies in the configuration. Iverson provides us with plenty of help (and screen shots) to ease the pain.

The impressive amount of code as well as the configuration instructions will help any developer working on the Mac OS X platform. The best practice discussions serve to make it easier for new Mac developers to keep their code truly cross-platform.

Mac Guild Grade
B+ (Great)

Final Words
The advertisement for this book specifically mentions the book's appropriateness for the "Java newbie", but I would caution those newbies to allow a fair amount of time for digesting Iverson's book. As a mainframe and web programmer with a smattering of Java experience and a number of years of Unix programming, I was often frustrated by Ant installation and configuration, classpath issues, and the few errata and updates that inevitably occur after publication to applications discussed in any book. These made for difficulties, but a dedicated programmer could find no better way to learn the Mac OS X Java way short of sitting at the foot of a Java master.