[Shootout-list] thoughts on the subject of ''compile to native code''

Brandon J. Van Every vanevery@indiegamedesign.com
Fri, 8 Oct 2004 11:21:23 -0700


Bengt Kleberg wrote:
> Brandon Van Every wrote:
> >
> > I believe that compilers and interpreters are so grossly distinct in
> > their performance differences in so many cases, that until
> > that changes,
>
> i think the shootout has tests proving your belif wrong.

I think we'll first have to define what 'grossly distinct' means.  2x or
3x performance differences matter to me.

> > they should be classed separately.  Many of us want to know
> > how much we
> > have to 'pay' for interpretation.   Thus for any given language, I'd
> > like to see the best compiled datapoint against the best interpreted
> > data point.
>
> why does this have to be on the ''top test page''?

Because it's a Big Picture issue and the top test page is where Big
Picture issues should go.

> i would go as far as
> to state that this is impossible since some languages does
> not have both compiler and interpreter.

When people select a language and implementation, they do not limit
themselves only to a specific language.  They say, "Ok, I can get both
compiled and interpreted flavors of Scheme.  Are these faster than
(interpreted) Ruby?  Are these faster than byte compiled or interpreted
Python?  How much slower are they than Java (compiled to a virtual
machine)?"  These kinds of comparisons are fundamental to the Shootout.

> > A language implementation may not perform as well, but it may have
> > vastly superior tools support.  If a language has 'second best'
> > performance, but much better tools support, industrially
> speaking that's
> > a win.  That's how I feel when I look at the various Scheme
> > implementations.  I'm tracking how they perform vs. how
> good the Windows
> > support is.
>
> currently the shootout is about performance. i am trying to make it
> better at that. if you are not interested in that i suggest you start
> your own thread, and leave this one alone.

To quote a president from a former election, "Let's not get snippy
here."  You're reading way more into my comment than I said.  I am
*mentally* tracking how good the Windows support is.  What I'm saying,
is there's a reason to put the 1st, 2nd, 3rd, and 4th best language
performers on a top page.  People are not interested in performance
only.  Implicitly, if not explicitly, they're evaluating the language on
many axes when they look at the performance numbers.

> > I think gross distinctions are the important combinations
> > to consider.
> > Compiled vs. interpreted is a gross distinction in most cases.
>
> yes that is one such. and so is byte code vs interpreted. some
> interpreters produce byte code on the fly. others do native
> compilation
> on the fly. those are also gross destinctions.

I agree that bytecode vs. interpreted is another gross distinction.

> there is no reason to accept my arguments as the default.
> i have used the following logic:
>
> we can not have all combinations of compilers and runtime
> flags for each
> language on the ''top test page'' for each test.

Actually, we can.  Nothing's stopping us.  The question is why we would
or wouldn't want to.  Personally, I think we wouldn't want to, due to
information overload.  I think we should stick to the options that cause
major performance differences, and blow off the minor tweaks.

> the shootout is about performance.
> we should use performance as the decisive factor for what we
> should put on a ''top test page''.

'Performance comparison' or 'maximum performance' ?  You seem to be
implying the latter, and I don't agree with you.  I think the
performance differences between natively compiled, bytecode compiled,
and interpreted code are important enough to warrant front page billing.

> finally, please Brandon J. Van Every try and be polite
> towards the other
> readers of this list. send you attacks on me, my belifs and the way i
> argue in private email. this list would be best served by your
> experience if you concentrated upon the arguments, instead of
> the person arguing.

I am tired of hearing things like:
> > >
> > > i have yet to see a persuasive argument from you [...]

Every time you have said it, I've previously given an argument that *I*
find persuasive, i.e. advanced with a decent degree of due dilligence
and rigor.  You may not accept it, agree with it, or in some cases
understand it, because people do talk past each other at times.  If you
simply said, "I don't agree with what you're saying," that would be a
lot easier to swallow than "you aren't providing persuasive arguments."
The latter is just rude.


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.