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

Reply via email to