REVIEW - Putting Metaclasses to Work - A New Dimension in Object-Oriented Programming

Title:

Putting Metaclasses to Work - A New Dimension in Object-Oriented Programming

Author:

Ira R. Forman, Scott Danforth

ISBN:

0201433052

Publisher:

Addison-Wesley Longman (1999)

Pages:

300pp

Reviewer:

Francis Glassborow

Reviewed:

June 1999

Rating:

★★★☆☆

I guess it will be a number of years yet before the ideas presented in this book come into widespread use, but if you want to stay ahead of the pack this would be an excellent book to study.

This book is an excellent example of one whose review really belongs in a periodical aimed at those exploring advanced programming technology. A few readers of C Vu maybe have come across the Metaobject Protocol previously but for most it will be a meaningless term. I do not have the space to give you a detailed exposition. Those who have worked with IBM's SOMobjects Toolkit will have some of the background on which this book is built.

I suppose the subject matter of this book is about where object-orientation was twenty years ago. It is about another level of abstraction, one in which classes are instances (objects) of metaclasses. In order for the ideas to work several technical extensions must be made to the language you are using. The material in this book is presented in terms of a C++ like language.

For the purposes of working with the material in this book the authors have provided an object model simulation that has been written in Java. The reason for this choice is to make the simulation widely available.

The authors have chosen to use a modified version of the DirectToSOM C++ (as exemplified by IBM VisualAge C++ 3.0 and MetaWare High C/C++) that was substantially the brainchild of Tom Pennello. Anyone who has ever met Tom or listened to him speak will know that he is one of the World's great language developers. The dialect of C++ used in this book is close to DTS C++ but has been simplified to make it more approachable by the newcomer.

The concepts of this book expressed in terms of this DTS C++ like language relate to C++ in much the same way that C with classes (the precursor of C++) related to C. Just as C with classes add important abstractions (largely object-orientation support) to C, so does DTS C++ add a new level of abstraction (the metaobject protocol) to C++.

I guess it will be a number of years yet before the ideas presented in this book come into widespread use, but if you want to stay ahead of the pack this would be an excellent book to study. You might then feel motivated to have a look at one of the two DTS C++ set of tools available on the market.


Book cover image courtesy of Open Library.