Need feedback on simple idea

Donald Major Donald.Major at sas.com
Fri Apr 11 18:34:06 UTC 2003


I have what I consider a better reason not to want to see the suggested 
idea researched in the public core Squeak code -- I use Squeak because 
it's free (important to me) and Smalltalk (more important to me) -- NOT 
some other language, like Self.  From postings I've seen, both for this 
thread and (much) earlier ones, I gather that any time I want to program 
with Self, I can download an image and start hitting keys.  But I don't 
want to program in Self, I want to program in Smalltalk, and Squeak fits 
that model closely enough for my purposes.

Conversely, I see nothing wrong with *forking* a copy of the public core 
Squeak code, making the changes suggested for the research, and making 
it publically available as something else, such as "Eek" or "Squawk", or 
whatever, and setting up "Eek" web sites, Eek discussion lists, and 
encouraging Eek porting efforts.  I might even subscribe myself, and 
after a while might even think it worth my time to drop Squeak in favor 
of Eek.  I just think that despite the intent of Alan Kay, Dan Ingalls 
and company to do research with Squeak as a starting point, in both 
"pink" and "blue" planes of  endeavor, Squeak-as-a-Smalltalk has too 
much momentum to change into Squeak-as-a-something-else -- unless a 
relatively clean break is made to create something like 
Eek-as-something-other-than-Smalltalk.

And of course, what anyone does in the privacy of their own personal 
Squeak (or Eek) image is their own business, and I have no objections to 
research conducted therein at all.

Of course, I suppose one could argue that we should fork off a Squeak 
image to become Eek, a Smalltalk, while Squeak moves on to become 
something else...

Nah!  :-)

Stephen Pair wrote:

> Nathanael Schärli wrote:
>
>> Hi Martin,
>>
>>  
>>
>>> But you loose something, namely encapsulation. Every object outside
>>> morph can screw the state of this morph, without doing 'more' to it, 
>>> meaning this morph will be put in an unvalid state.
>>>   
>>
>>
>> I think that the argument about "loosing encapsulation" is complete
>> bogus because it has no relevance in practice. In fact, encapsulation
>> means:
>>
>
> [lot's of good stuff snipped]
>
> I totally agree with Nathanael's comments...looking at instance 
> varaibles as if they were somehow untouchable or private is the wrong 
> way of looking at it.  It's very similar to the argument in favor of 
> having public/protected/private methods.  First, you can always get an 
> an object's inst vars using #instVarAt:(put:)...so any argument that 
> there is encapsulation is wrong.  There isn't.  There's just some 
> notion that gives the user of the class some idea of what's safe and 
> what's not safe to do.  I tend to view the notion of 
> public/protected/private methods as a feeble attempt at classifying 
> methods based on how likely it is that their interface will change 
> over time (private being the most likely, public being the least).  
> Similarly, an instance variable without direct getters/setters is 
> simply a comment saying "don't directly get or set this inst var, or 
> if you do, then be prepared to accept the consequences when I release 
> my next version."
> Encapsulation is really only achieved by responsible usage of the 
> interfaces exposed by a class.
> So, to say that you're losing encapsulation is simply not accurate.  
> You might be loosing some interface notational capability, but you are 
> not losing encapsulation because you cannot lose what you never had in 
> the first place.
>
> - Stephen
>
>
>
>

-- 
 ..	Donald Major		"Tech Support..your Windows machine doesn't
dtm	SAS Institute Inc.	 work?  Have you tried installing a Macintosh?"
	Cary, NC 27513			- me          SAS - "The Power to Know"
	AKA "Ol' Baby Lee"




More information about the Squeak-dev mailing list