Slots (was Re: Test expectation language (was Re: [squeak-dev] The Inbox: CollectionsTests-dtl.209.mcz))

Chris Muller ma.chris.m at gmail.com
Mon Jan 20 19:51:23 UTC 2014


>>> I much prefer the Smalltalk community's tendency to build layers of
>>> abstraction, while sticking to idiomatic Smalltalk. DSLs have their uses,
>>> ... snip...
>>
>> Yes.  I've always liked how everything we do in Smalltalk is built on
>> an aggregation of just 3 or 4 concepts, and that's it.  THAT is pretty
>> slick in itself.  Anything above that is "magic" and should pay
>> _really_ good ROI to justify its existence (e.g., way more than simply
>> aesthetics).  Another example I can think of are those new special
>> inst-vars in Pharo (having trouble remembering the name, "slots?") to
>> define all sorts of RDBMS-style checks, etc.  I would rather do that
>> simply via the same few Smalltalk concepts as everything else.
>> Instantiation, setting state, and message-sending..
>
> Slots [1] are just ("just") instance variables promoted to first class
> citizens. They do for instance variables what Metaclass does for Class
> - they extend Smalltalk's metaobject protocol [2] to cover instance
> variables. This lets you intercept reads and writes to the instance
> variables, and all sorts of interesting stuff. It's still just
> standard Smalltalk.
>
> Seems like a perfectly sensible thing to do.

Pharo integrated this didn't they?  Is anyone using it?

> [1] http://hal.inria.fr/docs/00/64/17/16/PDF/Verw11b-OOSPLA11-FlexibleObjectLayouts.pdf
>
> [2] https://en.wikipedia.org/wiki/The_Art_of_the_Metaobject_Protocol,
> praised by Alan Kay in his OOPSLA 1997 speech as (something like) "the
> best book written in 10 years.. but why did they have to write it in
> Lisp?"


More information about the Squeak-dev mailing list