[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Jonathan Rees on OO

Sorry for taking so long to reply, jrb.  I agree with
you more than you might guess.

I agree strongly with you that a language ought to let
users do what the language implementors did.  This is
what made me love Lisp in the first place.  I think
you cannot go too far in this direction.  

McCarthy didn't say anything about types.  And so the
first Lisp implementations got Algol types: certain
primitives, and that's it.  I don't like that.  You
need types to write any actual program, and if you're
going to have types you should have them in the Lisp
spirit.  I.e. users can define new functions that get
treated like the built-in ones; why can't they define
new types that do too?

I worry when I hear the word "class".  Why do we need
that word?  Users should be able to define types, and 
indeed as far as possible the code defining the built-in
types should be written in the language.

I've thought of just making the only really primitive
type in Arc be a block-o-bytes, and defining nearly
everything else on top of that.  Not sure how well that
would work.

Users should be able to define new types, and the
mechanism for doing it might be methods.  I don't have
a problem with that-- though methods, as we know them,
may not be the only way to allow existing functions to
operate on new types.  What bothers me (and it sounds
like you too) is when all programs have to be defined
as classes and methods, so that instead of a nice, 
integral program, you get a program that's broken up 
into little bits, connected together by pipes.  It's
gratuitous OO in user programs that I am making fun
of, not OO as a way to add new types to the language.


--- Jonathan Bachrach <jrb@ai.mit.edu> wrote:
> Why Proto has GOO (Generic Object-Orientation)?

Do You Yahoo!?
Send your FREE holiday greetings online!