[squeak-dev] Re: talk on Newspeak online

Klaus D. Witzel klaus.witzel at cobss.com
Wed May 7 20:12:30 UTC 2008


On Wed, 07 May 2008 18:21:19 +0200, Igor Stasenko wrote:

> 2008/5/7 Klaus D. Witzel <klaus.witzel at cobss.com>:
>> On Wed, 07 May 2008 15:48:56 +0200, Igor Stasenko wrote:
>>
>> > >
>> > >  ...
>> > >
>> >
>> > To me it looks like people see a fallen tree across the road here.
>> >
>>
>>  Hhm. what's that mean.
>>
> Means that people keep staring at it or starting building new road
> instead of just jumping over and continue moving :)

Heh! :)

>
>>
>> > I don't see much problem with smalltalk's approach. Proper
>> > initialization will be always a concern of developer. There is no way
>> > how we can ease his task with language sugars/semantics, because there
>> > always can be cases, which don't fit to developer's plan of how things
>> > needed to be initialized. So, the less we constrain him here - the
>> > better.
>> >
>>
>>  Unless a language designer puts inheritance into the developer's hands  
>> and
>> promises that the language then still provides
>> modularity+messaging+you_name_it (unlike Squeak/Smalltalk which doesn't
>> implement anything related to modularity nor slots).
>>
>
> _Implement_ - exactly!.

I'm glad you've recognized that subtle difference :)

> A modularity is related to implementation not
> to language syntax - right?

Right. And Smalltalk didn't suggest one (except that they introduced  
categories which where unkown by programmers of that time).

> I think smalltalk can be made modular very easily, by reviewing role
> of globals and classes/metaclasses.

Yes, I think so too. But we've also seen the (almost) neverending debates  
on how to do that here on squeak-dev :(

> But smalltalk syntax don't need to be changed to support modularity.

Except when you also want to address what the zillion of flies have now?  
And show them a better (read: message-based) way to do it (do it in a  
dogmatic way, the flies seem to *love* dogmata).

>>  I think that Newspeak language design is one approach, Squeak/Smalltalk
>> implementation is another.
>>
>> > For instance: useful case - omit calling superclass initialization.
>> >
>>
>>  Not possible in Newspeak, since by *naming* the superclass (at the
>> "declarative" time of subclassing) in Newspeak one *must* also name  
>> super's
>> constructor (the *static* symbol that I reflected upon in the above and
>> again in the next sentence), or else accept the default one (#new);  
>> similiar to how it is in Javanese ;)
>>
>
> And similar to C++.

Right.

> But it is really needed time to time to have
> different order of initialization, or do partial initialization.
> Its not a point of good/bad design , its a point of simply allowing or
> disallowing that.

Nothing against that but, do you have examples for the Newspeak team?

>
>>  FWIW, the superclass' slot name can be anything (message based, of  
>> course)
>> but, the constructor's message selector is the *static* thing that user  
>> of a
>> module has to know about ...
>>
>
> Hmm, can classes have multiple constructors? Or just #new if not
> defined by developer and #myUberConstructor if defined?

This is another area of Newspeak for which I have (as yet?) not much  
background info. AFAICT they don't want class variables nor class methods,  
that's for sure. So all that remains (all that their syntax can be used  
for in that branch of the language) is, to declare alternate  
constructor(s) that's for sure.

>
>> >
>> > I don't see how message-driven design (which Newspeak claiming is)
>> > should care about declaring state properties.

You've cut away your subject of your state properties: private/public  
modifiers.

>> > State in message-driven system is a behavioral component, not >  
>> declarative one.
>> >
>>
>>  Didn't understand a word :( what has *state* to do with a scope-bound
>> privilege? Can you reformulate using a) global visibility of a slot  
>> v.s. b)
>> ... v.s. c) ... v.s. x) local visibility of a slot. TIA.
>>
>
> Writing 'v.s' in java and other rudimentary languages

You lost me a 2nd time, this time on 'v.s.'; my use of that phrase was as  
abbreviation for 'versus'.

Let me try it again: I didn't see what your *state* has to do with  
Newspeak scope/visibility modifiers (private/public). Perhaps you meant  
*slots*.




More information about the Squeak-dev mailing list