About the clean of SystemDictionary
stéphane ducasse
ducasse at iam.unibe.ch
Wed Sep 29 08:27:24 UTC 2004
Hi
We thought a lot about architecture believe me :)
On 28 sept. 04, at 18:39, Trygve Reenskaug wrote:
> Sounds very good to me. Any cleanup of the basic classes will be most
> welcome. But I cannot see that a quick fix done in a couple of months
> will be a great help. I believe that was how Morphic was introduced in
> the first place to get away from the complexity of MVC. Anyone can see
> that the result is not as clean and simple as originally envisaged. We
> can always hope to find time to clean it up later, but later has a
> tendency never to arrive.
>
> Don't make the same mistake again. Architectural principles should
> come before design. Design should come before coding. And why be
> backward compatible? Squeak can support several disjoint class
> libraries.
but not for the kernel ;(
> Old code work with the old libraries, new code with the new. So I
> suggest that you will be better helped with two parallel development
> paths: One incremental bug fix etc, another creating the new stuff.
> And spend the time to get it right first time.
>
> For my BabyUML experiments, I have implemented a new MetaMetaclass
> (instance of itself), a new Metaclass that is instance of
> MetaMetaclass, and new classes that are instances of Metaclass. I also
> work with a new MetaComponent, instance of MetaMetaclass. Instances of
> my new classes can happily work with instances of the common Squeak
> classes since they use the same VM. But I clearly see that the
> realization of a clean class library will take years, not months.
Yes but we have to have results ;)
Stef
>
> Good luck
> --Trygve
>
>
> At 28.09.2004 17:13, you wrote:
>> Hi all
>>
>> we the KCP team are cleaning the kernel of squeak not for fun nor for
>> the beauty (ok sometimes I think that
>> we need beauty to dream about new languages since they should be even
>> more beautiful). Now we would like to have
>> squeak as a system that can mutate over the next 20 next years. We
>> want to use squeak to dream about new languages
>> and so on. For that we need clean code (such as the AST visitor
>> because to check literal or whatever we do not want to
>> have a recompile and fix ugly code everywhere).
>>
>> Now we would like to be able to define new kernel inside squeak: yes
>> a different Object and Class classes.
>> for that we need to clean SystemDictionary but we would like to avoid
>> to impact anybody else and
>> still have a good system at the end. After trying last year (with
>> some successes and some lose of brain cells
>> for example Beeper), we would like to fix that class once for all.
>>
>> Here is the plan:
>> - 1 introduce a clean namespace class:
>> (warning warning not something complex, no
>> composition, no nesting, no inheritance....
>> just a class that holds binding but does not inherits
>> from Dictionary and has a cool interface and not 12 responsibilities)
>>
>> - 2 delegates from system dictionary to it
>> Namespace smalltalk would return
>> Smalltalk
>>
>> - 3 fixes all the ugly Smalltalk at: ...to use the new
>> interface of Namespace but keeping the old ones in SystemDict
>> so that people can still load their code without any problems
>>
>> Note that point 4 and 5 should be atomic
>> - 4 deprecate everything "move" **everything** from
>> SystemDictionary to SmalltalkImage and other classes
>> - 5 then introduce Smalltalk as a pointer to SmalltalkImage
>> default
>>
>> this way after this period of time:
>> - Smalltalk will work for old code
>> - Smalltalk will be not a subclass of Dictionary
>> - We will have a clean Namespace and the tools using it
>> - And Smalltalk/SmalltalkImage will be clean.
>>
>> So we are looking for feedback.
>>
>> Stef
>>
>>
>>
>
>
> --
>
> Trygve Reenskaug mailto: trygver <at> ifi.uio.no
> Morgedalsvn. 5A http://heim.ifi.uio.no/~trygver
> N-0378 Oslo Tel: (+47) 22 49 57 27
> Norway
>
>
>
More information about the Squeak-dev
mailing list
|