The Art of the Metaobject Protocol is the best book written in computing in ten years.
The bottom line: Languages like Java give you an object protocol: There is one way to do things with objects and classes and interfaces, period. Anything else, like adding generics or annotations, must be done outside of the language, it must be done by the creators of the language.
Languages like Common Lisp and Smalltalk give you a meta object protocol: You can decide for yourself how to do things with objects, classes, interfaces, generic functions, whatever you want. You don’t need to wait for a committee to try something different.
People who believe that software is best created in a Soviet-era Bureaucracy celebrating process and mediocrity—all the while spouting propaganda about celebrating the common worker and the primacy of the proletariat, of course—fear and loathe this idea. They will tell you that standardization trumps innovation, and that the only thing worse than metaprogramming within a standard object system is metaprogramming the system itself.
But we saw how valuing process over people played out, and our minds are actually open to new ideas, even when those ideas are forty years old.