Getting Ready
Dan Ingalls
Dan at SqueakLand.org
Tue Mar 1 19:58:44 UTC 2005
[From the salutation, I think Trygve meant to CC this list.
Here's his summary of BabyUML...]
>Date: Tue, 01 Mar 2005 10:16:31 +0100
>To: Dan Ingalls <Dan at SqueakLand.org>
>From: Trygve Reenskaug <trygver at ifi.uio.no>
>Subject: Re: Getting Ready
>
>Greetings, modulers
>
>Your work is really exiting and highly relevant to what I am trying
>to do. I expect to build on the emerging modules by encorporating
>them into my components. It could even be that my components are
>relevant to the modules effort (happy thought!).
>
>I am working on a BabyUML report and hope to release a first draft
>in a few weeks. Here are some main points:
>
>* I need a high level programming language/environment for systems of objects.
>* I need a stored program object computer (like Smalltalk/Squeak).
>* I think and work in terms of systems of interacting objects,
> classes are also objects in my descriptions.
>* Object (sub)systems are encapsulated in components that are special objects.
>* Components are characterized by their provided and required interfaces.
>* A component appears as a black box object in its environment,
> but can be opened up to reveal its internals.
>* Components are connected by links to other components/objects
> that use the required and supply the provided interfaces
>* A component can encapsulate objects of any kind;
> typically both application and class objects.
>* Generalization/specialization between components is under study;
> the starting point is the UML 2.0 merge operation.
>
>The main purpose of the component is to divide and conquer. It could
>also be a unit of security/privacy and of persistence and reuse.
>
>The regular ST class with its metaclass siamese twin feels
>obfuscating in this context. I want the class objects to be treated
>and understood as regular objects that are visible parts of my
>system if I need to see them; I will then probably see them as
>factory objects.
>
>I am creating a new metaclass architecture:
>- BMetaMetaclass is the mother of all classes.
>- BMetaSimpleclass is the grandmother of regular objects
> (and the mother of the regular classes).
>- BMetaComponent is the grandmother of the components
>- Each metaclass has its own IDE
> and the high level program description,
> possibly including graphics, IS the program
>- The new objects and components interact seamlessly
> with regular Squeak objects
>
>More later
>--Trygve
>
>At 08:11 01.03.2005, you wrote:
>
>>Folks -
>>
>>First of all, special thanks to those of you who took the time
>>either to write a sort of position paper, or to fill out one of the
>>summaries. This really makes a difference. It's exciting to
>>embark on this project with such a knowledgeable crew.
>>
>>That said, I want to get the entries for Naiads and Islands filled
>>out, and I'm hoping to get something on Universes as well, before
>>we really blast off. Craig, Andreas, and Lex, if you are
>>listening, would you be willing to take a crack at these? Anyone
>>else? See the New Modules page,
>>
>> http://minnow.cc.gatech.edu/squeak/5608
>>
>>
>>Meantime, here are some appetizers to get you ready for the main course...
>>
>>Think about a little PDA with ROM and RAM. Suppose we blew the
>>squeak image in to the ROM. Could we run with it in ROM? When we
>>wanted to save, could we only save the differences from the ROM?
>>If we started it up again, and made some more changes, could we
>>just save those changes? What do these incremental snapshots
>>suggest about modules?
>>
>>Consider Packages and Projects. We might well open a new project,
>>build a package, and store it as a project. Or as a package.
>>Compare and contrast these two modes of use, in particular noting
>>how they might use the same underlying unit of modularity, and
>>further noting in what other aspects they differ.
>>
>>Imagine a change to the VM which would allow message lookup to be
>>intercepted. If we are writing some application and want to add a
>>few methods to class String, then we put them in a StringExtensions
>>class in our package (sometimes called a virtual class). A little
>>table in the VM notes this and, when a message is looked up in
>>class String, it is first looked up in StringExtensions. Things
>>may go a little bit slowly on the first lookup but then, of course,
>>the method goes into the cache and there is no performance penalty.
>>But look -- we have not modified class String at all. Time to
>>uninstall? Zero.
>>
>>Now imagine that the VM can have multiple method caches, one per,
>>um, per process? per module? Think about it. And when you have
>>figured it out, note that this system could run simultaneous
>>multiple projects with conflicting changes to root classes with no
>>performance degradation.
>>
>>Think about an image nicely partitioned into lots of little
>>segments corresponding to different modules. Might it make sense
>>to garbage collect them separately? And what about other aspects
>>of storage management? Supposing we are concerned about security,
>>and someone attacks the system by consuming more and more storage.
>>How do we catch that? How do we make sure that it only affects the
>>requestor, and not the rest of the system?
>>
>>More later
>>
>> - Dan
>>
>
>--
>
>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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/modules/attachments/20050301/f104ddf8/attachment.html
More information about the Modules
mailing list