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

Michael Latta lattam at mac.com
Tue Sep 19 20:12:31 UTC 2006


The difference (probably not clearly stated in the text, but understood in
the history of the problem) is that the function in Lisp that is returned
will accumulate the values passed in as arguments.  So the first call is
N+I, the second call is N+i+i2, the third is N+i+i2+i3, and so on where
i,i2,i3 are sequential arguments to the same function instance (rather than
new functions obtained by new calls to foo).

The original thread may have been about eToys.  I came in a bit later when
it had devolved to Lisp vs. Smalltalk vs. others.  I would say however that
many Smalltalk programmers use the select, eval, display type operation.  I
have gone so far as to build a system and code methods in the debugger as
they are encountered and DoesNotUnderstand is thrown.  It is sort of a
stream of conciousness coding practice.  I presume there is a method to do
anything I want and I decompose that into other fantasy methods until they
are so simple as to be clearly coded.  But, rather than coding them all up
front I code them in context of a real call in the debugger.  I do not do al
my work this way, but I have done it.  Definitely a workflow you can not do
in any other language.

Michael



> -----Original Message-----
> From: squeak-dev-bounces at lists.squeakfoundation.org [mailto:squeak-dev-
> bounces at lists.squeakfoundation.org] On Behalf Of Markus Gaelli
> Sent: Tuesday, September 19, 2006 11:46 AM
> To: The general-purpose Squeak developers list
> Subject: Etoys!? (was: Lisp s. Smalltalk) was: Re: Strongtalk VM for
> Squeak
> 
> 
> 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