[self-interest] Our two weapons are fear and surprise...and..

Niko Schwarz niko.schwarz at googlemail.com
Thu Aug 6 13:46:50 UTC 2009


Hi!


On 06.08.2009, at 00:12, Steve Dekorte wrote:

> "The control structures are built in and obvious"
>
> How are they any more obvious?
>

I don't mean to speak for brassblume, but I would like to answer.

A smalltalk loop like

#(1 2 3 4) do: [:el | Transcript show: el]

needs the reader and programmer to understand two separate things.  
What a loop is, AND what a block is.

Now you may say that I could just ignore the block magic and treat the  
syntax as magic, just like Java folks do. But Smalltalk won't let me.  
Blocks are built deep into the system, and you need to grasp them to  
get your head around to why the bevy of different iterators you will  
come across works.

Also, I could imagine that novices don't necessarily appreciate that  
"everything is the same!", as I told them with wet eyes about the  
beauty of Smalltalk. Everything is an object is a thing of beauty. But  
as a novice, you are analyzing, and at least it doesn't HELP that  
message sending and looping are entwined, and in fact look exactly the  
same.

In Java you can easily recognize loops. They come with a "do," a  
"while," or a "for." In Self not so much.

I suspect that the uniformity of Lisp is a reason why people find it  
difficult. You get lots of power from that uniformity, but it also  
confuses you by not letting you easily distinguish between separate  
concepts.

cheers,

Niko



More information about the Self-interest mailing list