Re: [vos-d] s/MetaObject/Component
Am 29.11.2007 um 19:39 schrieb Reed Hedges: Component does imply that it could be provided by a plugin module, and is dynamic, both of which are attributes of MetaObjects. I'm still not convinced that Component is a good replacement term. When I hear Component I usually think of something like EJB components, which can be quite heavyweight beasts, in contrast to the lightweight MetaObjects of VOS. A component in this sense is a deployment unit of self-contained functionality, with optional dependencies on other such componentes and possibly container facilities (database backend, naming, etc.). Also they are not really dynamic - you throw some of them toghether at construction time to build an application, possibly writing some glue code for this purpose, and never change their configuration/dependecies afterwards. Hot-deployment is a slightly different matter, but usually only works for truly self-contained components without external dependencies. I am aware of a different notion of component, which is the Microsoft way in its COM/.NET systems. A component here is basically just a class adhering to some API and type standards, including factories that construct them. This is certainly more lightweight, but even less dynamic than EJB, since you write code that uses factories to create components. Any dynamics is maybe in the ability to replace one COM DLL with a newer version, but beware of DLL hell... For dynamic things that can change at runtime, I usually thing of SOA rather than components. This usually means Web Services, though it does not have to be; the OSGi platform with its bundles or modules is also clearly SOA, and actually is the only one I would call dynamic component system. MetaObjects are different in this sense as they always contibute individual functionality to a common vobject. They are not even self- contained, as they usually depend on the linking facility of the core Vobject type. While they somewhat resemble COM components in granularity, they are much more dynamic in that they can be added at runtime. All in all, I think they deserve their own name, and Component just isn't it. Regards, Karsten Otto (kao) ___ vos-d mailing list vos-d@interreality.org http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d
Re: [vos-d] s/MetaObject/Component
Posted at: http://interreality.org/phorum/read.php?2,118,129#msg-129 reed wrote: KAO Wrote: runtime. All in all, I think they deserve their own name, and Component just isn't it. Maybe we could go the way of VObjects and call them VComponents, though that is a bit cumbersome-- they're all under the VOS namespace anyway. Module might work but that's often used for higher level application parts too. (And as a synonym for plugin). ___ vos-d mailing list vos-d@interreality.org http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d
Re: [vos-d] s/MetaObject/Component
On Thu, Nov 29, 2007 at 01:33:22PM +0100, Karsten Otto wrote: Also metaobject is an existing term of art in the programming language community having to do with defining and manipulating the semantics of how programming language objects are invoked, and while this is something that will exist in VOS, the current MetaObject class isn't it. Ok, I heared that term before, but am not quite sure what it means an certainly don't use it in day-to-day programming (maybe I'm just old- fashioned). http://c2.com/cgi/wiki?MetaObjectProtocol It's not something people use in day-to-day programming (unless your job involves Common Lisp or Smalltalk) but it is an entrenched term in the object-oriented community, so I prefer to avoid the confusion. I understand your desire to avoid a clash of terms, but I don't think Component is a good replacement; in fact it may make things worse! If you absolutely have to rename it, I'd rather see one of the other fuzzy terms like Facet, Aspect, ... Well, Aspect implies (to me) aspect-oriented programming. Facet is a possibility, although I've mainly encountered that in the capability security community where it has a little bit different connotation (as a possibly-restricted view or handle that mediates access to some underlying object). The most common use of term component is probably in the context of COM, XPCOM, KParts and so forth type of systems where it simply implies loosely-coupled objects, with separatation of interface and implementation and often dynamicly loadable and language-neutral. The plan is for S5 VOS vobject MetaObjects to do all those things, hence changing the name to component. On a side note, I have been meaning to sit down and do a writeup on s5 development progress, which will hopefully clarify things a bit. While for several months I was working part time to be able to devote time to VOS, I am presently working full time again for financial reasons, so VOS development is squeezed -- even writing email. -- [ Peter Amstutz ][ [EMAIL PROTECTED] ][ [EMAIL PROTECTED] ] [Lead Programmer][Interreality Project][Virtual Reality for the Internet] [ VOS: Next Generation Internet Communication][ http://interreality.org ] [ http://interreality.org/~tetron ][ pgpkey: pgpkeys.mit.edu 18C21DF7 ] signature.asc Description: Digital signature ___ vos-d mailing list vos-d@interreality.org http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d
Re: [vos-d] s/MetaObject/Component
Component is generic, and also recalls COM etc. How about: Part Facet Role Type Fragment Trait What exactly *is* a metaobject? It's a constituent Vobject that's part of a real Vobject, and which implements a facet or part of that Vobject, probably corresponding to a type. It implements part of the Vobject's interface. It provides an interface to the programmer (e.g. in C++ or whatever) for that facet or part or type. It handles a set or group of messages within that Vobject. I kind of like Part. Could even be inside Vobject's namespace I guess (Vobject::Part). I don't know how much this might have changed in s5 but generally a programmer only needs to know about MetaObjects when he is implementing one, if you're just using VOS you deal either with objects as generic Vobjects or with their type interface classes (e.g. Property, Object3D, etc.) Reed ___ vos-d mailing list vos-d@interreality.org http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d
Re: [vos-d] s/MetaObject/Component
Part is even more generic/vague than component, I think. Subparts might be slightly better. Another way to look at it, which would be clearest: vobject-getParts(); vobject-getSubparts(); vobject-getFacets(); vobject-getRoles(); vobject-getTypes(); // very bad, the term type is already overloaded vobject-getFragments(); vobject-getTraits(); vobject-getComponents(); Fragment was another term I was mulling over, although that implies to me something that is broken or incomplete. I still prefer component, since to me implies a nice, well defined piece that is designed to plug into a bigger system. I should also point out that if we were to interface COM with VOS, it would most likely be in the form of mapping VOS (MetaObject) APIs to COM APIs... The similarities are more than superficial (which makes sense, since some of the goals of VOS overlap with the goals of COM/DCOM). On Thu, Nov 29, 2007 at 10:37:37AM -0500, Reed Hedges wrote: Component is generic, and also recalls COM etc. How about: Part Facet Role Type Fragment Trait What exactly *is* a metaobject? It's a constituent Vobject that's part of a real Vobject, and which implements a facet or part of that Vobject, probably corresponding to a type. It implements part of the Vobject's interface. It provides an interface to the programmer (e.g. in C++ or whatever) for that facet or part or type. It handles a set or group of messages within that Vobject. I kind of like Part. Could even be inside Vobject's namespace I guess (Vobject::Part). I don't know how much this might have changed in s5 but generally a programmer only needs to know about MetaObjects when he is implementing one, if you're just using VOS you deal either with objects as generic Vobjects or with their type interface classes (e.g. Property, Object3D, etc.) Reed ___ vos-d mailing list vos-d@interreality.org http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d -- [ Peter Amstutz ][ [EMAIL PROTECTED] ][ [EMAIL PROTECTED] ] [Lead Programmer][Interreality Project][Virtual Reality for the Internet] [ VOS: Next Generation Internet Communication][ http://interreality.org ] [ http://interreality.org/~tetron ][ pgpkey: pgpkeys.mit.edu 18C21DF7 ] signature.asc Description: Digital signature ___ vos-d mailing list vos-d@interreality.org http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d
Re: [vos-d] s/MetaObject/Component
Also spracht Peter Amstutz (Thu, 29 Nov 2007 09:53:17 -0500): The most common use of term component is probably in the context of COM, XPCOM, KParts and so forth type of systems where it simply implies loosely-coupled objects, with separatation of interface and implementation and often dynamicly loadable and language-neutral. The plan is for S5 VOS vobject MetaObjects to do all those things, hence changing the name to component. Also Zope3 (formerly called the Zope Component Architecture). best, Lalo Martins -- So many of our dreams at first seem impossible, then they seem improbable, and then, when we summon the will, they soon become inevitable. - http://lalomartins.info/ GNU: never give up freedom http://www.gnu.org/ ___ vos-d mailing list vos-d@interreality.org http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d