[Shootout-list] Re: OO (was Re: process creation & message passing)

Brandon J. Van Every vanevery@indiegamedesign.com
Wed, 20 Oct 2004 22:09:41 -0700


Brent Fulgham wrote:
>
> I don't agree that we should exclude any languages
> from
> this test category.  If someone wants to roll their
> own object system in C that's fine -- it just needs
> to be incorporated into the LOC metric.

It is not fine.  You are trying to shoehorn OO into places where it
doesn't belong.  C programmers mostly don't think your OO stuff matters.
Functional programmers often don't either.  Why should you be talking to
a Standard ML guy about OO stuff?  They don't do OO, they don't *need*
OO.  They've got a perfectly decent system of modules and type
signatures.  There's other ways to package stuff besides OO.  It's
possible to combine paradigms, such as in the case of OCaml, but this is
also a research language.

Count me in the camp of, "yes, clearly we should exclude languages that
are clearly not OO from an OO test."  I think OO is one of these great
computer religions that a lot of people get fascinated by.  They have a
hammer, so they see every problem as a nail.

> We should allow Smalltalk, Python, Java, C++ (of
> course), but also Lisp with CLOS, Scheme with GOOP or
> TinyCLOS, Prolog with LogTalk, etc.

Some languages are not inherently OO, but use a standard OO system.
These OO systems are so commonly used and so widespread, that it's silly
to regard such languages as 'not OO'.  They get plenty of OO use in
practice.

> If people are able to implement the test in C using
> arrays and function pointers, that should be fine.

It is not fine.  There is no such widespread OO system for C.  The
overwhelming majority of people do not use C this way.

> > it because that's saying "You can't do OO in this
> > language" rather than "it's extremely hard to do OO
> > in this language".
>
> Right.  The fact that for years Objective C and C++
> compilers compiled to C code should be a good
> indicator that there is nothing "magic" about the
> technique.

I would like to know why, exactly, you think this whole line of
reasoning is important to investigate.  This is 2004.  These arguments
are ancient and, I would submit, uninteresting.  At least with regards
to C.  Are you really really really really into the idea of promoting
the "potential OO-ness of C," or are you just being kinda theoretical
and wonkish about testing inclusiveness?  It is actually OK, IMHO, to
cut out spurious cases and get people to concentrate on big picture
issues.  The marginal OO possibility of C is an itsy bitsy eeny weeny
teeny tiny issue.

And, we'll happily take the first C person out back and shoot 'em who
says otherwise.  :-)


Cheers,                         www.indiegamedesign.com
Brandon Van Every               Seattle, WA

20% of the world is real.
80% is gobbledygook we make up inside our own heads.