Book

The Art of the Metaobject Protocol

📖 Overview

The Art of the Metaobject Protocol is a foundational computer science text published in 1991 by Xerox PARC researchers Gregor Kiczales, Jim des Rivieres, and Daniel G. Bobrow. The book establishes core concepts and implementations of metaobject protocols within the context of Common Lisp and the Common Lisp Object System (CLOS). The authors present Closette, a simplified version of CLOS designed to demonstrate key principles of metaobject protocols. This implementation serves as a teaching tool by stripping away complex features to reveal the fundamental architecture and capabilities of the system. Through detailed technical explanations and practical examples, the text covers the implementation of CLOS and explores how metaobject protocols enable programmers to customize and extend object-oriented programming languages. The work includes the de facto standard for metaobject protocols that many Common Lisp implementations later adopted. The book stands as a pivotal exploration of how programming languages can be made more flexible and extensible through metacircular techniques. Its influence extends beyond Lisp to impact broader discussions about programming language design and implementation.

👀 Reviews

Readers describe this as a technical deep-dive into CLOS implementation that requires significant Lisp experience. Many note it's not for beginners. Liked: - Clear explanation of metaclasses and method combinations - Detailed protocol specifications and rationale - Real implementation examples from CLOS - Mathematical rigor in describing the MOP Disliked: - Dense academic writing style - Assumes advanced Lisp knowledge - Many examples use obsolete Lisp dialects - Some sections need multiple reads to grasp One reader said "It transformed how I think about OOP, but I had to read it three times." Another noted "The first 100 pages are worth it just for the MOP concepts." Ratings: Goodreads: 4.24/5 (90 ratings) Amazon: 4.5/5 (21 reviews) Most recommend reading "Object-Oriented Programming in Common Lisp" first before attempting this text.

📚 Similar books

Common Lisp: The Language by Guy L. Steele This technical reference delves into the fundamentals of Lisp and its object system CLOS, providing context for metaobject protocol implementations.

On Lisp by Paul Graham The book explores advanced Lisp programming techniques and macro systems that form the foundation for understanding metaobject protocols.

Let Over Lambda by Doug Hoyte This text examines advanced macro techniques and metaprogramming concepts in Common Lisp that build upon metaobject protocol principles.

Lisp in Small Pieces by Christian Queinnec The work presents implementations of multiple Lisp interpreters and compilers, demonstrating metacircular evaluation concepts related to metaobject protocols.

Concepts, Techniques, and Models of Computer Programming by Peter Van Roy, Seif Haridi This book explores programming paradigms and their implementation, including object-oriented programming and metalevel architectures.

🤔 Interesting facts

• Gregor Kiczales later became a key figure in aspect-oriented programming (AOP) and led the development of AspectJ, the first widespread AOP language extension for Java • The book's companion codebase, "Closette," is still used in computer science education today as a teaching tool for understanding metaobject protocols • CLOS, the system examined in the book, was the first standardized object-oriented programming system to support multiple inheritance and multiple dispatch • The concept of metaobject protocols discussed in the book heavily influenced later programming language designs, including Python's metaclass system • The work emerged from research at Xerox PARC, the legendary research center that also gave birth to the graphical user interface, Ethernet, and the laser printer