Annual Book Issue

Welcome to our annual book issue. As always, it has been difficult for the Journal of Object-Oriented Programming editors to assemble the long list of books presented herein. Our apologies are offered to any author whose book has been omitted from the list. Some books are difficult to classify and are omitted.

Charles Ashbacher has presented his favorite picks for the year. My favorite recently published book is Effective Java Programming Language Guide by Joshua Bloch (Addison–Wesley, 2001). This second generation Java book patterned after Scott Meyer's Effective C++: 50 Specific Ways to Improve Your Programs and Design (Addison–Wesley, 1997) is aimed at intermediate to more advanced Java developers. It is filled with excellent examples and outstanding advice.

Charles Ashbacher has contributed another review in this issue of UML Components: A Simple Process for Specifying Component-Based Software.

It is with great appreciation that I acknowledge the tremendous contributions of Andrew Koenig and more recently Barbara Moo as they bring the longest standing column in the Journal of Object-Oriented Programming to an end. As they point out at the end of their last regular column, this is the 110th column written since April, 1988. They have missed only two issues during this entire period. That fact alone is remarkable. More remarkable has been the consistently high quality of their work (actually not surprising if you know them). The world of OOP has changed so much since their column began. We look forward to their occasional contributions in the future.

This issue contains a Guest Column by Argyn Kuketayev dealing with Java performance issues. It also contains a Guest Commentary by Masud Malik suggesting the need for a "Slim C++."

In the ROAD column, "Adding Web Support to Open," authors Brian Henderson-Sellers, Brendan Haire, and David Lowe discuss what activities, tasks, and techniques might be added to the OPEN respository to support the needs of Web developers.

In the feature-length paper "Supporting Design by Contract in C++," by David Maley and Ivor Spence, two mechanisms for emulating design by contract are presented.

I hope you enjoy this issue.