...and some cool Smalltalk history! (Re: [Pharo-users] a Pharo talk from a ruby conference)

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

...and some cool Smalltalk history! (Re: [Pharo-users] a Pharo talk from a ruby conference)

Göran Krampe
Howdy!

(cc to squeak-dev because I think lots want to read this)

If you want to know some cool history of Smalltalk, and perhaps this is
a strong argument in actually *being* a Smalltalk and not trying to
distance yourself from that rich and lovely heritage.... anyway, here goes:

On 04/28/2014 08:14 PM, Alain Busser wrote:
> Also, Ruby is famous for these methods:
>
> *select
> *reject
> *collect
>
> do these names not remind you something ;-) ?

There is a funny story about these verbs. Martin McClure told me at ESUG
in Brest to ask Dan Ingalls about it, hinting that they are "inspired"
by a famous song.

And thus I did ask Dan in my interview with him I did a few years back
over Skype (it is an interesting interview, for example - was there an
inspiration from biology when Smalltalk was created?):

http://files.krampe.se/interview.mp3

...the song in question is by Arlo Guthrie:

http://en.wikipedia.org/wiki/Alice%27s_Restaurant_Massacree

...and here is a URL to the lyrics of it:

http://www.lyricsty.com/arlo-guthrie-alices-restaurant-lyrics.html

(search down to "injected"!) ...or just let me quote:

"They got a building down New York City, it's called Whitehall Street,
Where you walk in, you get injected, inspected, detected, infected,
Neglected and selected. I went down to get my physical examination one
Day, and I walked in, I sat down, got good and drunk the night before,
so I looked and felt my best when I went in that morning."


...now... where do we stuff in #neglect:? :)

regards, Göran

Reply | Threaded
Open this post in threaded view
|

Re: ...and some cool Smalltalk history! (Re: [Pharo-users] a Pharo talk from a ruby conference)

timrowledge

On 29-04-2014, at 9:30 AM, Göran Krampe <[hidden email]> wrote:
>
> ...now... where do we stuff in #neglect:? :)

Clearly, aCollection neglect: [:item| item size > myFoo] would return a WeakArray of elements matching the block criterion; then when nobody is paying much attention they can be garbage collected.

tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
No single raindrop believes it is to blame for the flood



Reply | Threaded
Open this post in threaded view
|

Re: ...and some cool Smalltalk history! (Re: [Pharo-users] a Pharo talk from a ruby conference)

David T. Lewis
In reply to this post by Göran Krampe
Thanks Göran, that's great!

I'm really looking forward to seeing an implementation of
Collection>>neglect:, I can't believe nobody thought of this before ;-)

Dave

> Howdy!
>
> (cc to squeak-dev because I think lots want to read this)
>
> If you want to know some cool history of Smalltalk, and perhaps this is
> a strong argument in actually *being* a Smalltalk and not trying to
> distance yourself from that rich and lovely heritage.... anyway, here
> goes:
>
> On 04/28/2014 08:14 PM, Alain Busser wrote:
>> Also, Ruby is famous for these methods:
>>
>> *select
>> *reject
>> *collect
>>
>> do these names not remind you something ;-) ?
>
> There is a funny story about these verbs. Martin McClure told me at ESUG
> in Brest to ask Dan Ingalls about it, hinting that they are "inspired"
> by a famous song.
>
> And thus I did ask Dan in my interview with him I did a few years back
> over Skype (it is an interesting interview, for example - was there an
> inspiration from biology when Smalltalk was created?):
>
> http://files.krampe.se/interview.mp3
>
> ...the song in question is by Arlo Guthrie:
>
> http://en.wikipedia.org/wiki/Alice%27s_Restaurant_Massacree
>
> ...and here is a URL to the lyrics of it:
>
> http://www.lyricsty.com/arlo-guthrie-alices-restaurant-lyrics.html
>
> (search down to "injected"!) ...or just let me quote:
>
> "They got a building down New York City, it's called Whitehall Street,
> Where you walk in, you get injected, inspected, detected, infected,
> Neglected and selected. I went down to get my physical examination one
> Day, and I walked in, I sat down, got good and drunk the night before,
> so I looked and felt my best when I went in that morning."
>
>
> ...now... where do we stuff in #neglect:? :)
>
> regards, Göran
>



Reply | Threaded
Open this post in threaded view
|

Re: ...and some cool Smalltalk history! (Re: [Pharo-users] a Pharo talk from a ruby conference)

Göran Krampe
In reply to this post by timrowledge
On 04/29/2014 06:41 PM, tim Rowledge wrote:
>
> On 29-04-2014, at 9:30 AM, Göran Krampe <[hidden email]> wrote:
>>
>> ...now... where do we stuff in #neglect:? :)
>
> Clearly, aCollection neglect: [:item| item size > myFoo] would return a WeakArray of elements matching the block criterion; then when nobody is paying much attention they can be garbage collected.

I like it. Personally was thinking that neglect could work similar to
reject but instead return a wrapper using the first collection as a
"backend". So it uses the same collection but "neglects" those elements
not matching :)

Dynamically add some nasty Trait?

regards, Göran

Reply | Threaded
Open this post in threaded view
|

Re: ...and some cool Smalltalk history! (Re: [Pharo-users] a Pharo talk from a ruby conference)

Casey Ransberger-2
The influence of Smalltalk on Ruby is well known, and is in fact how I found you people:)

Particularly striking is Ruby's block/closure syntax. Looks almost the same, which sticks out like a sore thumb in a dot and curly language. In the most recent versions I think they've even added keyword messages.

Awesome to know where #collect: came from. I wondered about that; given that the guy running the LRG was fond of LISP, I would have expected it to be called #map:.

I think the Ruby collections have #map() as a synonym for #collect(), reflecting the language's dual heritage. I've always used collect though because it makes me think of baseball cards!

> On Apr 29, 2014, at 9:48 AM, Göran Krampe <[hidden email]> wrote:
>
>> On 04/29/2014 06:41 PM, tim Rowledge wrote:
>>
>>> On 29-04-2014, at 9:30 AM, Göran Krampe <[hidden email]> wrote:
>>>
>>> ...now... where do we stuff in #neglect:? :)
>>
>> Clearly, aCollection neglect: [:item| item size > myFoo] would return a WeakArray of elements matching the block criterion; then when nobody is paying much attention they can be garbage collected.
>
> I like it. Personally was thinking that neglect could work similar to reject but instead return a wrapper using the first collection as a "backend". So it uses the same collection but "neglects" those elements not matching :)
>
> Dynamically add some nasty Trait?
>
> regards, Göran
>

Reply | Threaded
Open this post in threaded view
|

Re: ...and some cool Smalltalk history! (Re: [Pharo-users] a Pharo talk from a ruby conference)

Eliot Miranda-2



On Mon, May 12, 2014 at 1:05 PM, Casey Ransberger <[hidden email]> wrote:
The influence of Smalltalk on Ruby is well known, and is in fact how I found you people:)

Particularly striking is Ruby's block/closure syntax. Looks almost the same, which sticks out like a sore thumb in a dot and curly language. In the most recent versions I think they've even added keyword messages.

Awesome to know where #collect: came from. I wondered about that; given that the guy running the LRG was fond of LISP, I would have expected it to be called #map:.

Dan posted last week that the collect:, detect:, inject:, reject:, select: suite was inspired by Arlo Guthrie's "Alice's Restaurant Massacre":

"They got a building down New York City, it's called Whitehall Street,
where you walk in, you get injected, inspected, detected, infected,
neglected and selected. I went down to get my physical examination one
day, and I walked in, I sat down, got good and drunk the night before, so
I looked and felt my best when I went in that morning. `Cause I wanted to
look like the all-American kid from New York City, man I wanted, I wanted
to feel like the all-, I wanted to be the all American kid from New York,
and I walked in, sat down, I was hung down, brung down, hung up, and all
kinds o' mean nasty ugly things. And I waked in and sat down and they gave
me a piece of paper, said, "Kid, see the psychiatrist, room 604."


I think the Ruby collections have #map() as a synonym for #collect(), reflecting the language's dual heritage. I've always used collect though because it makes me think of baseball cards!

> On Apr 29, 2014, at 9:48 AM, Göran Krampe <[hidden email]> wrote:
>
>> On 04/29/2014 06:41 PM, tim Rowledge wrote:
>>
>>> On 29-04-2014, at 9:30 AM, Göran Krampe <[hidden email]> wrote:
>>>
>>> ...now... where do we stuff in #neglect:? :)
>>
>> Clearly, aCollection neglect: [:item| item size > myFoo] would return a WeakArray of elements matching the block criterion; then when nobody is paying much attention they can be garbage collected.
>
> I like it. Personally was thinking that neglect could work similar to reject but instead return a wrapper using the first collection as a "backend". So it uses the same collection but "neglects" those elements not matching :)
>
> Dynamically add some nasty Trait?
>
> regards, Göran
>




--
best,
Eliot


Reply | Threaded
Open this post in threaded view
|

Re: ...and some cool Smalltalk history! (Re: [Pharo-users] a Pharo talk from a ruby conference)

Göran Krampe
On 05/12/2014 10:27 PM, Eliot Miranda wrote:
> Dan posted last week that the collect:, detect:, inject:, reject:,
> select: suite was inspired by Arlo Guthrie's "Alice's Restaurant Massacre":

I think it was *I* who posted, or did I miss a post from Dan?

regards, Göran

Reply | Threaded
Open this post in threaded view
|

Re: ...and some cool Smalltalk history! (Re: [Pharo-users] a Pharo talk from a ruby conference)

Eliot Miranda-2



On Mon, May 12, 2014 at 1:35 PM, Göran Krampe <[hidden email]> wrote:
On 05/12/2014 10:27 PM, Eliot Miranda wrote:
Dan posted last week that the collect:, detect:, inject:, reject:,
select: suite was inspired by Arlo Guthrie's "Alice's Restaurant Massacre":

I think it was *I* who posted, or did I miss a post from Dan?

oops.  forgive me; increasingly email passes in a blur... 


regards, Göran




--
best,
Eliot


Reply | Threaded
Open this post in threaded view
|

Re: ...and some cool Smalltalk history! (Re: [Pharo-users] a Pharo talk from a ruby conference)

Nicolas Cellier


2014-05-12 22:48 GMT+02:00 Eliot Miranda <[hidden email]>:



On Mon, May 12, 2014 at 1:35 PM, Göran Krampe <[hidden email]> wrote:
On 05/12/2014 10:27 PM, Eliot Miranda wrote:
Dan posted last week that the collect:, detect:, inject:, reject:,
select: suite was inspired by Arlo Guthrie's "Alice's Restaurant Massacre":

I think it was *I* who posted, or did I miss a post from Dan?

oops.  forgive me; increasingly email passes in a blur... 


regards, Göran




--
best,
Eliot






Reply | Threaded
Open this post in threaded view
|

Re: ...and some cool Smalltalk history! (Re: [Pharo-users] a Pharo talk from a ruby conference)

Göran Krampe
On 05/12/2014 11:03 PM, Nicolas Cellier wrote:
> Sure, but I swear I saw it before.
> Maybe not in this mailing list...
> http://smalltalkzen.wordpress.com/2011/02/02/arlo-guthrie-and-the-origins-of-the-collection-protocol/
> http://www.nofluffjuststuff.com/blog/rick__denatale/2010/11/how_arlo_got_injected_into_ruby

Yeah, both those articles refer to my interview with Dan - where I asked
him. But it was Martin that gave me the idea to ask and clarify :)

There are other things in that interview - like for example - did
biology (the cell etc) actually serve as inspiration at that time?

regards, Göran