"Michael G Schwern" <[EMAIL PROTECTED]> wrote: > This is just your friendly neighborhood curmudgeon reminding you that in > Perl 6, everything is an object > ... > Instead of introducing new built-in functions they can be done as methods.
The problem with this worldview is that you end up with horrible asymmetries suh as: > 1 + 2 == 3 > > would suck as: > > (1 + 2).eq 3 There is a difference between verbs and noun. Sometimes you don't want to associate a verb with an object: you want to associate it with the subject: "the cat sat on the mat" is that the_mat.sat_on(the_cat) or the_cat.sat_on(the_mat) or sat_on(the_cat, the_mat) All of those seem to loose the preposition. Are sat_on and sat_beside really completely independent things? Under perl's grammar: yes. Seems to me that identifiers have a complex fusional word-structure, which is opaque to the grammar of the language. The more structure you can expose into the parse tree, the more powerful will be manipulations on that tree. Perl6 allows there different worldviews, but we need to make sure that verbs are as entensible as nouns. Multimethods are wonderful things. Don't add something as a method if it makes more sense as a multi-method. Don't use an asymmetric method syntax for a symmetric concept. To say "everything is an object: extend by adding methods" elevates Nouns over Verbs. And it completely ignores all the other parts of the language. Sometimes people seem to think that the only alternative is to add built-ins: but this really shouldn't be the case -- not in a language as powerful as Perl6. Dave.