On Tue, Aug 09, 2005 at 06:36:28PM +0200, TSa wrote: > But Smalltalk is a typeless language that dispatches along the lines > of the (meta)class/(meta)object links. I propose to call this kind > of thing slot dispatch and reserve single and multi method dispatch for > the type based approach. Don't get me wrong, I consider them all as > equally usefull tools that belong into a state of the art programming > language. The only question is which gets the nicest syntax. And I > guess the meta model by its nature of beeing 'behind the illusion > of simplicity' has to take the burden of beeing somewhat uglier or > more verbose or some such.
Perl 6 in its unannotated form is also (mostly) a typeless languages, with only the five builtin types, much like Perl 5 is. I suspect that the unannotated form will be the form most program begins, which is why they are (naturally) shorter than annotated forms. As you add more types and turn on optimization settings, the inferencer/typechecker kicks in, and you get more static bindings; however, the metamodel still exist at runtime, and it is with it that most runtime reflection is performed. > >Yes, but those are not going to be handled in the meta-model, because > >the meta-model is all about classes. You can however, build a classless > >system on top of the metamodel, using classes of course. > > Could it be the case that choosing the same terms 'class' and 'object' > on the meta level as on the user level is a *bad* idea? At least it > will be a source of confusion. I think the meta- prefix is what caused much of the initial conclusion. When I first heard "metatheory", I also thought it was some kind of ontological mystery. Turns out that "meta" in this context coincides with "guts", as in "perlguts" -- i.e., something that happens at the internals level. So, think of them more like "Internal Objects" and "Internal Classes", or "Object Guts" and "Class Guts"... > >Ahhh, the circularity of it all :) > What is the benefit of the circularity? The benefit is that the implementor won't need to implement a countless set of turtles all the way down. :) > >Once you get used it it, it is really a beautiful thing. > > Infinite recursion is a great mental tool, indeed. > But somewhat difficult to implement without either > infinite processing time or infinite memory :) Nah, lazy evaluation is the canonical solution to this! (Sorry, can't resist it.) Thanks, /Autrijus/
pgp7tOGiUdfil.pgp
Description: PGP signature