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

Aaron Denney wnoise@ofb.net
Thu, 21 Oct 2004 17:25:17 +0000 (UTC)


On 2004-10-21, Isaac Gouy <igouy2@yahoo.com> wrote:
>> Right, and I'm fine with that.  I don't need the whole program to be
>> lazy for it to validly use the technique of laziness.  I don't
>> need the entire language to be lazy, just some way of delaying and
>> forcing evaluation. 
>
> Seems like you are not talking about features of a language
> implementation but arbitrary customizations made by individual
> programmers?

I'm talking about how to use given techniques in given programing
languages.

>> > This just skipped all around the issue - what's core OO.
>> 
>> Why does it matter what's "core OO"?  It's not like the OO community
>> has settled that question.  We can say what we're testing, and test
>> it.
>> If you want to eliminate "writing to the test" in the object-system,
>> require the same object system for multiple tests.
>
> Help me understand how asking that programs should follow the test spec
> can be described as wanting to 'eliminate "writing to the test"'?

My suggestion means you have multiple tests, each requiring some aspect
in the object-system that you think is reasonably core.  Requiring the
same object-system for all tests means that one can't optimize the
object system for case "a" in test "a", case "b" in test "b", and so
forth, but has to make tradeoffs, just as languages with built-in
OO systems need to do.  I thought this thread started with you objecting
that languages without a built-in object system had an unfair advantage
on the OO tests, so should be excluded.

> "This test attempts to measure the speed of method calls in OO
> languages. It measures a mixture of method calls of a base and a
> derived class on an object of the derived class."
>
> Previously you acknowledged wanting to change the test: "So I want to
> change it."

Yes, I'm saying the current test spec can easily be interpreted as
asking us to do something that I don't think is reasonable.  It can also
be interpreted in what I think is a more reasonable manner.  I'd like it
changed so that it is clear what it is asking, and so that it doesn't
exclude, say OO languages without direct inheritance, or even languages
that most don't consider OO, even though perfectly good OO systems for
them exist.  Common Lisp is not what springs to mind when one says OO,
yet with CLOS it clearly is.  The difference between that and Scheme +
an object system is quite small.  Pretend we're not testing "Scheme",
but "Scheme + object system X", and changed the labels everywhere to
reflect this.  Still, the object system is irrelevant for most of the
tests, so we can consider those as being "plain old scheme" just as
easily.

-- 
Aaron Denney
-><-