On Mon, Feb 06, 2006 at 10:41:02PM -0500, Matt Fowles wrote: : Larry~ : : On 2/6/06, Larry Wall <[EMAIL PROTECTED]> wrote: : > This is mostly motivated by linguistics rather than computer science, : > insofar as types/classes/roles in natural language are normally : > represented by generic objects rather than "meta" objects. When I : > ask in English: : > : > Can a dog bark? : > : > that's equivalent to asking in Perl 6: : > : > Dog.can('bark') : : Or you might think of it more as a question like "Can the ideal of a : dog bark?" the answer to which is of course "No, it doesn't exist.".
As soon as you say "the ideal" you've chosen Platonism over Aristotelianism. :-) : Perhaps, I am just too firmly rooted in old paradigms but I think it : is very important not to conflate the representation of a thing with : the thing. : : http://en.wikipedia.org/wiki/Image:MagrittePipe.jpg Indeed, and the modeling point of view is that $pipe is *also* just a representation of the Pipe. Neither Pipe nor $pipe is the thing itself. Most computer programs are about Something Else, so computer languages should be optimized for talking about other things rather than talking about themselves. The answer to Pipe.can("Smoke") $pipe.can("Smoke") should be the same, not different. On the other hand, ^Pipe.can("Smoke") is a different matter, insofar as you're asking a question about a Class object rather than a Pipe object. And now you get your Platonism back. You just have to be explicit about it. Larry