Alan,
It's delightful to read your comments on Object Models and MOPs -- always interesting topics to me, and especially useful now as I'm trying to do some work in this area, with Squeak as the testbed. One of the regrets of my 4+ years at Apple, much of it working on dynamic languages (e.g., SK8) and even located just down the hall from your team, was that I didn't get to interact more with you and them. Now, through the marvels of this mailing list and the active participation of the whole Squeak team, we're all getting the benefit of that interaction. Keep the postings (and the "blue plane" changes to Squeak) coming!
Now a couple questions and an emotional reaction:
Gregor apparently published another book on MOPs by himself after "Art of the Metaobject Protocol", at MIT Press, titled "Open Implementations and Metaobject Protocols", in both hardcover (Sept 94, ISBN: 0-262-11192-6) and paperback (June 95, ISBN: 0-262-61103-1). But my attempts to get a copy at all the usual places (MIT Press, Amazon, Stacey's in Palo Alto, and even the Stanford Bookstore) have failed. How different is this book from the "AotMP" (which I have)? Should I persist in trying to get a copy?
Gregor seems to be pursuing a new topic, "aspect oriented programming". Any comments on this line of research? A quick read of the intro web pages didn't leave me with enough concrete understanding to assess the ideas.
You said: ....But it is really terrible if you just ban such things. That is too moralistic and smacks of the Wirth school of (non)programming. This is why well thought out metasystems should allow the good designer/programmer to have their cake and eat it too. The "Metaobject protocol" by Greg and Danny, et. al., at PARC is an inspiring further advance in what we had done there in the '70s, and it gives some tantalizing insights into what could yet be invented.... Ouch! How can I clear my name? :-) Maybe I'll just have to convince you that Nicklaus is the "call-by-name" Wirth and I'm the "call-by-value" Wirth :-)
Mike Wirth IBM Almaden Research Center
Mike --
At 9:15 PM -0800 2/28/98, wirth@almaden.ibm.com wrote: -- snip --
Gregor apparently published another book on MOPs by himself after "Art of the Metaobject Protocol", at MIT Press, titled "Open Implementations and Metaobject Protocols", in both hardcover (Sept 94, ISBN: 0-262-11192-6) and paperback (June 95, ISBN: 0-262-61103-1). But my attempts to get a copy at all the usual places (MIT Press, Amazon, Stacey's in Palo Alto, and even the Stanford Bookstore) have failed. How different is this book from the "AotMP" (which I have)? Should I persist in trying to get a copy?
Yes, it is very useful. Try Amazon or MIT Press online.
Gregor seems to be pursuing a new topic, "aspect oriented programming". Any comments on this line of research? A quick read of the intro web pages didn't leave me with enough concrete understanding to assess the ideas.
I don't know the genesis of his particular interest. The idea of "aspects" (or "perspectives") was another hot topic at PARC among both the Smalltalkers and Danny Bobrow's original group that did KRL. It's possible he picked up the notion via Danny, or he could have thought of it himself.
You said: ...But it is really terrible if you just ban such things. That is too moralistic and smacks of the Wirth school of (non)programming. This is why well thought out metasystems should allow the good designer/programmer to have their cake and eat it too. The "Metaobject protocol" by Greg and Danny, et. al., at PARC is an inspiring further advance in what we had done there in the '70s, and it gives some tantalizing insights into what could yet be invented.... Ouch! How can I clear my name? :-) Maybe I'll just have to convince you that Nicklaus is the "call-by-name" Wirth and I'm the "call-by-value" Wirth :-)
Sorry, I should have said "the Bucky school of (non)programming" (that was his nickname at Stanford). Actually, I would think you would want to reverse your metaphor, since "call-by-name" is a much more powerful and useful concept than "call-by-value"......
Cheers,
Alan
Regrettably, as far as I can tell the book was never actually published. Amazon lists it as hard to find, and the MIT Press web site lists both the hardback and paper editions as "publication indefinite". The last time I bugged Gregor about it, sometime late in '96, I think, he had no idea when (or even if) he would be able to finish the manuscript. I understood him to say that much of the work needed to be re-evaluated in the light of the "aspect-oriented" concepts he was then working on. If you're out there Gregor, could you tell us if I'm correct in this?
Gregor was circulating early drafts to the object community, which may be why Alan Kay remembers reading a copy.
Let me see if I can give you a quick synopsis of the theme of the book, based on a couple of conversations with Gregor in '95 and '96, when I was hoping to use some of the ideas in a project I was working on. It didn't happen then, but only because there was no time on my end to follow through, not because of any flaw in the ideas.
The idea of open implementations is to apply the power of modularization to complex systems, getting the advantages of encapsulation (simplicity and reliability of interface, the notion of a contract between the consumer and the producer, etc.) without the attendant disadvantages (loss of control over factors that matter to the consumer, like performance in common use cases). One good example is a common case in operating system design: the designer of an OS that manages a fixed-sized pool of resources, such as disk-cache pages, must make decisions about resource creation and destruction (e.g., LRU destruction), when the correct choice often depends on how the application running on the OS will use those resources.
For instance, when scanning through a file for a given string, you don't care about a page once you've checked it, but you'd like to have as many pages as possible read in at once, to maximize the I/O throughput. On the other hand, if you're using a dispatch table to send messages, and hitting the table often, this is an obvious candidate for LRU.
But the typical design of a system that allows the user to configure the OS at this low a level requires that user to have access to low-level functions and data, entities that should be hidden from the sight of the user, for reasons of reliability and security. A slightly better approach is used in micro-kernel OS architectures, in which the user can install one of a number of modules to perform the disk-system function, each one with a different caching policy.
Open systems are an attempt to go one better, with a disciplined approach to designing system control interfaces that are orthogonal to the application programming interfaces, but which allow the application to specify attributes of the system like performance requirements and use policies that fit the application's use cases. ----------------------------------------------------------------------------- "But in our ordinary lives we do not experience the world as a succession of signifiers any more than we experience it as a succession of car chases." Janet H. Murray in "Hamlet on the Holodeck". ----------------------------------------------------------------------------- Bruce Cohen, | email: cohenb@gemstone.com GemStone Systems, Inc. | phone: (503)533-3602 20575 NW Von Neumann Drive | fax: (503)629-8556 Beaverton, OR USA 97006 | web: http://www.gemstone.com
At 3:36 PM -0800 3/1/98, Bruce Cohen wrote: -- snip -->
Gregor was circulating early drafts to the object community, which may be why Alan Kay remembers reading a copy.
Yep, now that I vaguely recall, it very likely was a draft of someone's that I perused.
What is so interesting about this subject area is the tantalizing notion that by several mechanisms (many of them involving various kinds of confinement) one should be able to get almost everything in a system to be late bound without either great danger or significant performance hits.
Cheers,
Alan
Mike --
Sorry, I meant to say: keep trying Amazon and MIT Press online -- and of course there is Gregor himself to ask. While you are at it, please try to get one for me as well, I have only perused the book, and would like a copy as well.
Cheers,
Alan
squeak-dev@lists.squeakfoundation.org