[Newbies] formatting keyword messages

Benjamin Schroeder benschroeder at acm.org
Sun Nov 2 15:21:01 UTC 2008


On Nov 2, 2008, at 9:27 AM, Mark Volkmann wrote:

> I'm reading "Smalltalk Best Practice Patterns". The pattern  
> "Indented Control Flow" recommends putting each keyword on a  
> separated line, indented with a tab. I like that for long messages,  
> but this one example annoys me.
>
> 	array
> 		at: 5
> 		put: #abc
>
> Earlier the author explains the how conserving vertical space  
> increases readability. This example contradicts that advice.
> Also, it just seem so verbose compared to the Java equivalent of  
> "array[5] = "abc";".
>
> Do experienced Smalltalkers really like this formatting for short  
> messages like at:put: or is the following preferred?
>
> 	array at:5 put: #abc

I normally use the separate-line version, just because I find it  
easier to follow the same formatting nearly everywhere. I remember  
someone (Beck?) giving similar reasoning somewhere about using "each"  
as a loop variable, or "i" as a loop index - nothing to think about,  
and you can recognize what's going on anywhere at a glance.

I do occasionally "break" this rule, though. For example, to:do: comes  
to mind - I'll usually write

	1 to: 15 do:
		[:i |
		"..."
		"..."]

instead of

	1
		to: 15
		do:
			[:i |
			"..."
			"..."]

Hope this helps,
Ben Schroeder



More information about the Beginners mailing list