> It tries to work with methods and classes through symbolic names.. and
> you immediately end up with
> gemmorage of a need to keep separate 'core' and 'extension' , 'meta'
> and 'instance-side' methods in your model.

Yes, that's what I suggested, merge the extension and core dictionaries.

> I don't know what is the purpose of making a package to be a dead
> piece of flesh, which reflects own organization by using symbols,
> instead of real objects? Who are you trying to deceive with that?

Incremental development. Separation of concerns.

If the package would contain the real classes and real methods one had
to change (literally) thousands of places in the system.

> If you remember, i put some thoughts about packages here before. And
> even implemented a prototype package model myself (did you looked at
> it?). My concepts is simple and object-oriented (instead of
> symbolic-names oriented ;) ) :

Where?

> If we take a most abstract and stripped down concept then, in order to
> define a package, we need just two things:
> - a set of objects , which belong to that package
> - and a namespace (name->object), where name is a symbol and object is
> one of the objects, which
> belong to package.

RPackage is about a PackageInfo replacement, not about a namespace
implementation. Arguably namespacing is something entirely different.

> But if you don't that , you model will remain a piece of flesh,
> without skeleton - it can't move , it can only lie on the ground and
> rot :)

I suggested Stef to look at the environments in the refactoring
engine. They are a proven implementation for more than 10 years, they
work very efficiently with numerous GUIs (OB, VisualWorks, VisualAge),
and have been applied in many different scenarios (introspection,
reflection, refactorings, changes, lint, virtual code, ...).

> I don't understand, why to not work with actual objects, instead of
> names? Please enlighten me, why you want to refer to objects
> indirectly and leaving to somethings else in the system to decide how
> these names turned into a real objects.
> What is the benefit of having such indirect model?

What would a method object refer to other than its class and its
selector? Is the introduction of another layer of objects that
duplicates Class, PseudoClass, MCClassDefinition, RBClass and
CompiledMethod, MethodReference, MCMethodDefinition, RBMethod
reasonable?

Remember, this is just the internal implementation. I agree that to
the outside a package should be represented using dedicated objects.

Lukas

-- 
Lukas Renggli
http://www.lukas-renggli.ch

_______________________________________________
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to