[squeak-dev] smalltalk evolution

Juan Vuletich juan at jvuletich.org
Wed Jun 1 10:18:27 UTC 2011


Kamil Tomsik wrote:
>
>
>> So, #new: creates a point without values for x and y... What if I 
>> want to only build objects that make sense, meaning that their 
>> instance variables must conform to some invariant defined by the class?
>>
>
> you can't do this even in smalltalk.

How come? In your Point example it is very easy to get a 'broken' 
point... How would you get an equally broken OrderedCollection in 
Smalltalk? In my opinion doing 'OrderedCollection basicNew' or 
"anOrderedCollection instVarNamed: 'array' put: nil" don't count, 
because it's not happening by accident: You're clearly stating the 
intention to break it!

> ...and checking arguments presence is not enough, you would need to
> check its internal state too - and you shouldn't do that.

You shouldn't do _what_? You say you shouldn't check internal state? I 
wonder what you mean here... and if you're serious or just trolling...

You'd be in a much better position to find Smalltalk's shortcomings if 
you first learn more about it. Start with "Design principles behind 
Smalltalk". "The early history of Smalltalk" is also a great read. There 
are many great books about Smalltalk, for example "Smalltalk with 
Style". Then, spend a couple of years doing relevant, non-trivial stuff 
with Smalltalk, studying the image and applications written with it. 
Maybe then you have a better POV.

Cheers,
Juan Vuletich

>
>
>
> Best,
> Kamil 




More information about the Squeak-dev mailing list