Etoys!? (was: Lisp s. Smalltalk) was: Re: Strongtalk VM for Squeak

Markus Gaelli gaelli at emergent.de
Tue Sep 19 18:46:28 UTC 2006


On Sep 19, 2006, at 7:15 PM, Michael Latta wrote:

> But, this one does not create an accumulator, just an adder.
?

Quote of the specification:

"As an illustration of what I mean about the relative power of  
programming languages, consider the following problem. We want to  
write a function that generates accumulators-- a function that takes  
a number n, and returns a function that takes another number i and  
returns n incremented by i.
(That's incremented by, not plus. An accumulator has to accumulate.)"

Isn't Number>>foo a function taking one argument possibly called n?  
(And isn't better stored in number, so I could find later on?)
And doesn't it return a function which expects one argument i and  
returns n incremented by i?

>>>
>>> Number >> foo
>>> 	^[:i | self + i]
>>>

Maybe I don't get the difference between incrementing and plus. Do  
you have an example of a use case which might have been intended by  
Paul though not explicitly specified - at least not for me?

But why discussing the power of Smalltalk, it is Etoys whose  
expressiveness I find amazing - though they are not (yet?) build with  
themselves.
I think Etoys takes us a long way from REPL to what I call SEDL, the  
"Select, Evaluate, Display - Loop" --- why should we take the  
perspective of machines?
And though I do like commands, I hate commands out of context. Escape  
Meta Alt Control Shift is not focusing on humans but on uber-geeks  
who are proud to have learned lots of commands by heart. Also look at  
the evolution of interfaces of operating systems - inspired by  
Smalltalk of course. People (including me) want to recognize and act  
accordingly - and not to learn things by heart.

With classes and class extensions we have a very good way to store  
commands into their contexts - in Smalltalk, but the question is how  
we could pass the Deutsch-Limit (named after Peter Deutsch) in Etoys  
or similar approaches:
http://en.wikipedia.org/wiki/Deutsch_Limit
The project below has 34 lines of code, including the method headers  
- and it's starting to get hard to read...could we come up with a  
visual debugger for Etoys? Alternative categorization schemes to the  
viewer? And - when will / can Etoyers start to write Etoy-scripts to  
improve Etoys?

<shameless self plug>
See an example of an incrementor for numbers with a base from 2 to 10,
a cross-summer, an according fractal music generator, and a xylophone  
all fitting on one page with 34 lines of etoys
http://www.squeakland.org/project.jsp?http://www.emergent.de/pub/ 
smalltalk/squeak/projects/musinum.pr
(Press the MIDIPort openMidi button after start)
(had to add three lines of Smalltalk to get the internal midi running)
<\shameless self plug>

Cheers,

Markus



More information about the Squeak-dev mailing list