Jump to ratings and reviews
Rate this book

The Art of the Metaobject Protocol

Rate this book

The CLOS metaobject protocol is an elegant, high-performance extension tothe CommonLisp Object System. The authors, who developed the metaobject protocol andwho were among the group that developed CLOS, introduce this new approach toprogramming language design, describe its evolution and design principles, andpresent a formal specification of a metaobject protocol for CLOS.Kiczales, desRivi?res, and Bobrow show that the "art of metaobject protocol design" lies increating a synthetic combination of object-oriented and reflective techniques thatcan be applied under existing software engineering considerations to yield a newapproach to programming language design that meets a broad set of designcriteria.One of the major benefits of including the metaobject protocol inprogramming languages is that it allows users to adjust the language to better suittheir needs. Metaobject protocols also disprove the adage that adding moreflexibility to a programming language reduces its performance. In presenting theprinciples of metaobject protocols, the authors work with actual code for asimplified implementation of CLOS and its metaobject protocol, providing anopportunity for the reader to gain hands-on experience with the design process. Theyalso include a number of exercises that address important concerns and openissues.Gregor Kiczales and Jim des Rivi?res, are Members of the Research Staff, andDaniel Bobrow is a Research Fellow, in the System Sciences Laboratory at Xerox PaloAlto Research Center.

352 pages, Paperback

First published July 30, 1991

10 people are currently reading
683 people want to read

About the author

Gregor Kiczales

2 books4 followers

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
60 (43%)
4 stars
52 (37%)
3 stars
19 (13%)
2 stars
6 (4%)
1 star
0 (0%)
Displaying 1 - 10 of 10 reviews
Profile Image for Everton.
12 reviews9 followers
January 23, 2016
It's unbelievable how deep they went exploring OOP's fundamentals. It was an herculean effort to provide an enormous amount of features allowing extensibility to every aspect of the language.

The book is very clear and objective, it requires attention but is very instructive. One of the best books I had ever read about OOP, but definitively not suitable for beginners.

The biggest question that remains: is that kind of power usable in a regular team? There is so many powers provided by this protocol that seems to be dangerous, you need a team that understands every concept presented and its effects, this sounds very not applicable into "real" projects.
11 reviews
September 17, 2009
A very good book for you if you want to know more about the Common Lisp Object System, or even just want to take your own development (in Lisp or another dynamic language) to the next level. The authors take system design to another level that I've rarely seen. It shows that flexibility and efficiency can be combined - friends even. That kind of design is probably made possible by the language it's written in, but it's also not forced by the language it's written in. This book is very valuable to me.

It is a satisfying read. The authors clearly state assumptions and write clearly for most of it. The pace is fairly fast, and they get into the system fairly quickly. A warning: you'll need to concentrate while reading the book :). If you're a Lisp developer, it's a must have.
7 reviews9 followers
November 11, 2016
A few years ago, I was interested in MOPs due to Perl's Moose OO framework. I took a look at this book and gave up after a few pages as "way over my head"

After a year or so of reading Lisp, I was interested again in MOPs, and after reading Keene's OO book by way of intro, moved onto this. At long last, I was able to understand all the jargon and code samples. As a result, after all this time I finally *got* what a MOP is and why you may want one.

In fact, it's such a brilliant and simple idea I'm amazed every language doesn't have one. At least, so it seems after investing a year in the foundations :)

Really worthwhile book, but you *have* to have at least some common lisp and CLOS knowledge to make it understandable.
Profile Image for Lars Rune Nøstdal.
1 review1 follower
September 8, 2012
Probably the best book about OOP I ever read. Opened my eyes as to how poor the OOP support is in our "mainstream" languages.
Profile Image for Alex Ott.
Author 3 books209 followers
March 13, 2011
Very good description of design principles of Common Lisp's CLOS and meta-object protocol (MOP) behind it. The first part of the book book describes how we can design MOP for simple subset of CLOS, and how it could be extended to provide more flexibility. The second part is dedicated to detailed description of CLOS's MOP.
Profile Image for Colin Jones.
Author 1 book103 followers
May 29, 2012
I'd probably like this book more if I used Common Lisp. The first half or so has some great ideas on flexibility, making most everything I could think of be customizable. Clear benefits for program design and even performance. The second half is more of a small encyclopedia of the available hooks.
10 reviews
September 21, 2007
A important book if you will be building object oriented programming tools.
Profile Image for Graham Lee.
119 reviews28 followers
June 3, 2014
I think that first read introduced me to the ideas and I'll have to go through and build the thing myself to fully grok it. It's a well presented book but a little heavy for a train journey read.
Profile Image for Luke.
1,101 reviews20 followers
April 1, 2017
Like all good Lisp books, derives a nicely articulated implementation and then proceeds to unroll it into flexible bits. Good discussion of other language object systems and how to open up the internals to choose the invariants your project needs, but nothing earth shattering.
Displaying 1 - 10 of 10 reviews

Can't find what you're looking for?

Get help and learn more about the design.