# Rifling Through Smalltalk's Drawers

**URL:** <https://www.ruby-forum.com/t/rifling-through-smalltalks-drawers/66377>\
**Category:** Ruby\
**Created:** [August 25, 2006, 1:03am UTC](https://www.ruby-forum.com/t/rifling-through-smalltalks-drawers/66377 "2006-08-25T01:03:29Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![casper\_the\_ghost](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/58956e/32.png) [@casper\_the\_ghost](https://www.ruby-forum.com/u/casper_the_ghost)\
**Post date:** [August 25, 2006, 1:03am UTC](https://www.ruby-forum.com/t/rifling-through-smalltalks-drawers/66377/1 "2006-08-25T01:03:29Z")

</div>

Dear Rubytalkers,

I wrote a small bit of code called MethodShopping a little while back  
which as it turned out had just been done in Ruby a few days earlier!  
More importantly however is that both the name, MethodFinder, and the  
inspiration for that other Ruby version, was Smalltalk. Smalltalk had  
a version who knows how many decades ago?..

My inspiration wasn’t Smalltalk, but laziness. I didn’t want to have  
to go pouring over a class’ interface in a tedious search for a  
method. I just wanted to be able to throw the result at a class and  
have it spit out the right method. Still, I thought, hmm, somethin’  
to this Smalltalk stuff. (A slight overstatement, at least given my  
understanding that much of Ruby’s object system, classes and methods  
are already derived from Smalltalk.)

Then I noticed that Rick DeNatale (or is it De Natale?), an old (Your  
term Rick!) Smalltalker has recently starting blogging, and about  
Ruby. I’m really stoked that we’re getting old Smalltalkers  
participating. There’s a ton of fantastic experience there. What  
other gems like MethodFinder am I busily reinventing? I’d like to  
know!

Well, right now I’d like to know what Smalltalkers think of the  
discussion about collections. What of your experience helps inform  
the class structure for Array, Hash, etcetera? With all those extra  
years, there’s sure to be a few new (to Ruby) wrinkles.

Similarly, there’s Lisp. Way older than Smalltalk again. What has  
Lisp to contribute? Well, I read the other day about Rails’ new  
method alias\_method\_chain at  
[Ruby on Rails — New in Rails: Module#alias\_method\_chain](http://weblog.rubyonrails.org/2006/4/26/new-in-rails-module-alias_method_chain).  
And according to Jon Tirsen, who commented therein,  
alias\_method\_chain is apparently very much like a Lispy technique  
which is known as ‘around advice’ although I’m not sure how it gets  
that name and haven’t encountered it myself.

Having written a bit of Lisp in my time and having declared it my fave  
language, and now loving the Lispiness of my new fave language, Ruby,  
I was wondering what could be got from it’s drawers too…

Although we don’t seem to be getting so much from Lispers, but perhaps  
they’re more curmudgeonly old bastards than I am? Any heavy-duty old  
Lispers out there?

So, anyone up for some rifling? By that I mean a vaguely organised  
and much more proactive and unprincipled band of raiders go thieving  
through every nook and cranny of Smalltalk’s (or Lisp’s) libraries; or  
any other room of their houses…

Sincerely,

thoran

“Bad artists copy. Great artists steal.” — Pablo Picasso

---

<div class="post-metadata">

**Author:** ![casper\_the\_ghost](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/58956e/32.png) [@casper\_the\_ghost](https://www.ruby-forum.com/u/casper_the_ghost)\
**Post date:** [August 25, 2006, 2:23am UTC](https://www.ruby-forum.com/t/rifling-through-smalltalks-drawers/66377/2 "2006-08-25T02:23:35Z")

</div>

If you’re trying to win us over to the idea with your message title,  
I’m sad to say it’s having the opposite effect, for me at least. My  
MUA didn’t even show me the subject because there was so much noise  
in front of it. I’ve been on Ruby T. for years and that’s easily  
the ugliest subject to date. ☹

James Edward G. II

---

<div class="post-metadata">

**Author:** ![casper\_the\_ghost](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/58956e/32.png) [@casper\_the\_ghost](https://www.ruby-forum.com/u/casper_the_ghost)\
**Post date:** [August 25, 2006, 3:53am UTC](https://www.ruby-forum.com/t/rifling-through-smalltalks-drawers/66377/3 "2006-08-25T03:53:42Z")

</div>

On 8/24/06, James Edward G. II [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> If you’re trying to win us over to the idea with your message title,  
> I’m sad to say it’s having the opposite effect, for me at least. My  
> MUA didn’t even show me the subject because there was so much noise  
> in front of it. I’ve been on Ruby T. for years and that’s easily  
> the ugliest subject to date. ☹

I agree completely, the idea was interesting but almost overpowered by  
the UGLY subject line.

---

<div class="post-metadata">

**Author:** ![casper\_the\_ghost](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/58956e/32.png) [@casper\_the\_ghost](https://www.ruby-forum.com/u/casper_the_ghost)\
**Post date:** [August 25, 2006, 10:20am UTC](https://www.ruby-forum.com/t/rifling-through-smalltalks-drawers/66377/4 "2006-08-25T10:20:18Z")

</div>

On Aug 24, 2006, at 6:51 PM, pat eyler wrote:

> On 8/24/06, James Edward G. II [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:
> 
> > If you’re trying to win us over to the idea with your message title,  
> > I’m sad to say it’s having the opposite effect, for me at least. My  
> > MUA didn’t even show me the subject because there was so much noise  
> > in front of it. I’ve been on Ruby T. for years and that’s easily  
> > the ugliest subject to date. ☹
> 
> I agree completely, the idea was interesting but almost overpowered by  
> the UGLY subject line.

thirded… partially to agree, and partially to demonstrate that  
nothing you do is going to improve the signal:noise ratio here.

– ryan – who gave up arguing that we should split/improve this list  
in Oct 2002. 😛

---

<div class="post-metadata">

**Author:** ![casper\_the\_ghost](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/58956e/32.png) [@casper\_the\_ghost](https://www.ruby-forum.com/u/casper_the_ghost)\
**Post date:** [August 25, 2006, 5:21pm UTC](https://www.ruby-forum.com/t/rifling-through-smalltalks-drawers/66377/5 "2006-08-25T17:21:14Z")

</div>

Bad subject line aside, I still feel it’s a worthy discussion that I’d  
love  
to hear folks input on.

Jake

---

<div class="post-metadata">

**Author:** ![casper\_the\_ghost](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/58956e/32.png) [@casper\_the\_ghost](https://www.ruby-forum.com/u/casper_the_ghost)\
**Post date:** [August 25, 2006, 5:25pm UTC](https://www.ruby-forum.com/t/rifling-through-smalltalks-drawers/66377/6 "2006-08-25T17:25:15Z")

</div>

On 8/25/06, Jake C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Bad subject line aside, I still feel it’s a worthy discussion that I’d love  
> to hear folks input on.

I agree. Could we please trim the subject to something reasonable?

---

<div class="post-metadata">

**Author:** ![casper\_the\_ghost](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/58956e/32.png) [@casper\_the\_ghost](https://www.ruby-forum.com/u/casper_the_ghost)\
**Post date:** [August 25, 2006, 5:49pm UTC](https://www.ruby-forum.com/t/rifling-through-smalltalks-drawers/66377/7 "2006-08-25T17:49:18Z")

</div>

On 8/25/06, James Edward G. II [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> 

YUP  
Very good point Edward!  
Do not kill the baby before it is born.  
What about  
[IDEA] instead of the whole bunch?

Just my microassets.

Robert

–  
Deux choses sont infinies : l’univers et la bÃªtise humaine ; en ce qui  
concerne l’univers, je n’en ai pas acquis la certitude absolue.

- Albert Einstein

---

<div class="post-metadata">

**Author:** ![casper\_the\_ghost](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/58956e/32.png) [@casper\_the\_ghost](https://www.ruby-forum.com/u/casper_the_ghost)\
**Post date:** [August 25, 2006, 4:23pm UTC](https://www.ruby-forum.com/t/rifling-through-smalltalks-drawers/66377/8 "2006-08-25T16:23:01Z")

</div>

removed\_email\_address@domain.invalid [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

> Similarly, there’s Lisp. Way older than Smalltalk again. What has  
> Lisp to contribute? Well, I read the other day about Rails’ new  
> method alias\_method\_chain at  
> [Ruby on Rails — New in Rails: Module#alias\_method\_chain](http://weblog.rubyonrails.org/2006/4/26/new-in-rails-module-alias_method_chain). And  
> according to Jon Tirsen, who commented therein, alias\_method\_chain is  
> apparently very much like a Lispy technique which is known as ‘around  
> advice’ although I’m not sure how it gets that name and haven’t  
> encountered it myself.

It’s called “around advice” because the function to define it is  
called DEFADVICE with an “around” parameter (as opposed to “before” or  
“after”).
