Adam Petersen - Software Development Pages, Book Reviews Section
Start News Articles Book Reviews

Book Review

Beyond Java
by Bruce Tate

ISBN: 0596100949
Publisher: O'Reilly Media
Pages: 185


It never happens to me. I can’t even remotely remember the last time I read a really bad technical book. There’s a reason for that. I put great care into evaluating books before I buy one; the worst thing with a bad book is not the lost time in itself – it is the missed opportunity to read something great instead. Anyway, here I am: Beyond Java is a lousy book and I suspected exactly that despite many favorable reviews. So, why on earth did I read it then? Well, it is short enough that I believed it was worth the risk and second, I find many of the subjects (Ruby, Smalltalk, continuation servers) interesting.

Beyond Java discusses the shortcomings of Java like complicated stacks of technology, low productivity partly due to static typing, checked exceptions, over-reliance on XML (this is probably more of a symptom than the problem itself) and the implementation of generics gone wrong. The back cover promises a look at other languages and frameworks while relating them to Java’s strengths and weaknesses. A quick glance at the table of contents reveals that the “investigation” boils down to marketing Ruby and its possible Killer-App Rails. Now, I have nothing against that, even if would expect much more from a book with “a glimpse at the future of programming languages” written on its cover; I find Ruby appealing and plan to dive into it in the near future. The problems with Beyond Java are the many errors, poor proofreading, arrogance and lack of subject knowledge on the side of the author.

For an author claiming to investigate the future of programming languages, Bruce Tate knows surprisingly little about the subject. Given, he admits it but that’s at the end of the book. After reading his statements that he’s “just a Java developer, who’s prejudging the overall landscape based on my limited experience” and that he doesn’t “have the time or will to do a comprehensive treatment of languages” I really cannot, even with my best will, understand the point of including a chapter with superficial coverage of languages he obviously doesn’t have any experience with (the .NET-family, Lisp, etc). Worse, given the quotes above, can I trust anything in the book? Besides, I find it really amazing that a Java specialist fails to recognize that static typing has an obvious advantage: execution speed. Not that he lacks the opportunity to mention it; the rather pointless discussion of static versus dynamic typing is repeated over and over again throughout the book and Bruce Tate seems to believe that the only gain by static typing is error detection.

The book is limited to web applications and nothing more. Yes, it’s an area of ever growing importance but Bruce Tate completely fails to recognize the rest of the world.

The preface mentions how the author feels he let his readers down by publishing his previous book “before it was ready” and that he now has to “prevent the same mistake from happening twice”. Excuse me, but this must be a joke; the book is irritatingly repetitive and error-ridden. Many errors are easy caught, such as wrong variable names and writing about extending a Calculator class when the code deals with a Person class. But it gets worse. As Tate describes continuations, which is a potentially more complex construct, the errors definitely hinders the understanding. When he writes about skipping line 14 and executing line 15 in a program with only 13 lines it gets unintentionally fun; after all, a continuation captures the execution state of a program and those missing lines 14 and 15 where probably present in an earlier draft of the chapter. Perhaps the author called a continuation on himself middle in the chapter?

My technical concerns are serious enough, so I will not go into a lengthy discussion on how downright disturbing the kayaking and mountain bike stories are that starts of every chapter. They do not work as analogies to the programming discussed and I definitely do not need any filling up in a technical book. It’s disappointing to see a book like this from O’Reilly.

Reviewed September 2006


©2005 Adam Petersen adam@adamtornhill.com