Ruby Performance

[snip]

i think python has been out there as long as perl has? seems to me i
read that somewhere...

[snip]

Depends when you start counting.

1987 Perl 1.0
1991 Python 0.9
1991 Perl 4.0
1994 Perl 5.0
1995 Ruby 0.95
1997 PHP 3.0
1998 PHP 4.0
2000 Python 2.0
2003 Ruby 1.8
2004 PHP 5.0

Younger than Perl 1, but older than Perl 5 (which, in my opinion anyway, was the first version of Perl that you could actually use for serious applications).

Adrian

···

On 12 Aug 2005, at 18:41, tony summerfelt wrote:

'tim toadie' is how the anagram

tmtowtdi

is pronounced. which stands for "there's more than one way to do it".

it's like the catchy saying for perl, which allows coders to write in
different ways.

one of my favorite larry wall quotes (dealing with tim toadie) is
iirc, 'if it works, it's right'

the jury's out about whether this is great or not,

if you have to write a 5 line perl program to parse a txt file, and
you've written it in less than 45 seconds, and it takes about 2
seconds to execute, as opposed to searching the documenation/internet
for the 'right way to do it' and the 5 line program takes an hour to
write...

well THIS juror says it's great :slight_smile:

writing the same 5 line program in python. i had to write it over
again a few times till it was 'written the right way' and accepted by
the entire python community as the right way...but i digress :slight_smile:

i find ruby almost as flexible as perl is, with the added features of
the oo not feeling tacked on. some of my code isn't as concise as it
could be, but i figure i'll learn that as i write more ruby. for now
i just like getting my code up and running in a reasonable amount of
time...

···

luke wrote on 8/14/2005 12:31 AM:

--
http://home.cogeco.ca/~tsummerfelt1
telnet://ventedspleen.dyndns.org

[snip]

it started off as an april's fools joke on slashdot (about combining
perl and python or something like that, i still have the page saved
somewhere). the name suggests that perlers were joke's intended target.

There was a joke instigated by Simon Cozens - a Perl developer - put together for OSCON 2001. Aided and abetted by Eric Raymond, Guido van Rossum and many more. This was that Perl and Python were being merged. See <O'Reilly Media - Technology and Business Training; for the full story.

The targets were, of course, everybody gullible enough to fall for it :slight_smile:

Parrot the VM shares nothing beyond the name - and is an interesting looking VM for dynamic languages. Including Perl 5 :slight_smile:

Adrian

···

On 15 Aug 2005, at 17:34, tony summerfelt wrote:

Speak for yourself :slight_smile: I like Perl 5. I'm sure Larry Wall quite likes Perl 5. However it's not perfect. If nobody tried to improve things we'd all still be using assembler rather than lovely things like Ruby and Perl.

Adrian

···

On 15 Aug 2005, at 17:32, tony summerfelt wrote:

my point was there doesn't need to be a perl6.

perl is what it is. those that like it use it, those that don't, don't. :slight_smile:

Daniel Amelang wrote:
-snip-
> I highly recommend reading through the arguments and counter arguments
> before we do a complete reproduction here.
Thank you Daniel, you might notice my name in those discussions.

Only as an uncritical booster who doesn't actually listen. Just like now, no?

As you've mentioned, other folk on ruby-talk presented
counter-arguments to Austin's claims - afaict those counter-arguments
were never rebutted.

Then you simply can't tell. They were. Basically, the shootout you run
is -- always has been -- and always will be -- crap. You can take
steps to make it honest crap, instead of what it is, though.

-snip-
> I'm just trying to save us (and
> you) from more of the same-old-same-old discussions.
If there's any substance behind the name-calling we should be able to
point-out specific errors on the shootout.

When the problem with the shootout is the methodology and the
presentation -- without getting into more substantial errors
(statistical problems) -- and the general unwillingness of the people
who run it to do anything to improve the methodology and presentation,
then there's not a specific error. The whole thing is wrong. Until you
understand that there's problems with your whole damned methodology
and even worse problems with your presentation, you're never going to
get it.

Even if Ruby were to become the best performing language tomorrow, I
wouldn't recommend that anyone pay attention to the pile of garbage
known as the "Great Computer Language Shootout." The only thing
"great" about it is the amount of sheer ignorance that it and its
maintainers willingly perpetuate.

···

On 8/16/05, Isaac Gouy <igouy@yahoo.com> wrote:

--
Austin Ziegler * halostatue@gmail.com
               * Alternate: austin@halostatue.ca

Hi Isaac,

I've paid attention to some of the discussions on the shootout here,
but I'm not sure that I've ever had any of my basic questions
answered. Maybe you can answer them.

The site lists as its goal, "to learn about programming languages,
compare their performance in various (possibly meaningless) ways and,
most importantly, have some fun!"

What is it that we are learning about programming languages?

What do we gain from comparing performance in "various (possibly
meaningless) ways?

I don't think that I've learned much from the shootout, but it may
well be that I'm missing something. I do that a lot. :slight_smile:

···

On 8/16/05, Isaac Gouy <igouy@yahoo.com> wrote:

Daniel Amelang wrote:
-snip-
> I highly recommend reading through the arguments and counter arguments
> before we do a complete reproduction here.

Thank you Daniel, you might notice my name in those discussions.

As you've mentioned, other folk on ruby-talk presented
counter-arguments to Austin's claims - afaict those counter-arguments
were never rebutted.

-snip-
> I'm just trying to save us (and
> you) from more of the same-old-same-old discussions.

If there's any substance behind the name-calling we should be able to
point-out specific errors on the shootout.

http://shootout.alioth.debian.org/fulldata.php?test=takfp&p1=ruby-0&p2=php-0&p3=psyco-0&p4=lua-0&sort=fullcpu

In article <47CC0E3D-ACF9-4CA3-99BF-0F335A90EA41@quietstars.com>,
Adrian Howard wrote:

···

On 15 Aug 2005, at 17:34, tony summerfelt wrote:
[parrot] was a joke ... that Perl and Python were being merged.

Didn't it include a report of Matz thanking Parrot for all the Ruby
converts? :slight_smile:

Cheers,

Jeremy Henty
--
There is nothing so useless as doing efficiently that which should not
be done at all.
-- Peter Drucker

Austin Ziegler wrote:

Then you simply can't tell. They were. Basically, the shootout you run
is -- always has been -- and always will be -- crap. You can take
steps to make it honest crap, instead of what it is, though.

Doug Bagley, the creator of the original "Great Computer Language
Shootout", called his system for ranking the languages "CRAPS".

It allowed him easily to tinker with the weight assigned to each test
and hence to make his favorite language come out on top.

Please, tell us how you *really* feel. I feel like there's some
bottled up emotions in there somewhere that you aren't telling us.

···

On 8/16/05, Austin Ziegler <halostatue@gmail.com> wrote:

On 8/16/05, Isaac Gouy <igouy@yahoo.com> wrote:
> Daniel Amelang wrote:
> -snip-
> > I highly recommend reading through the arguments and counter arguments
> > before we do a complete reproduction here.
> Thank you Daniel, you might notice my name in those discussions.

Only as an uncritical booster who doesn't actually listen. Just like now, no?

> As you've mentioned, other folk on ruby-talk presented
> counter-arguments to Austin's claims - afaict those counter-arguments
> were never rebutted.

Then you simply can't tell. They were. Basically, the shootout you run
is -- always has been -- and always will be -- crap. You can take
steps to make it honest crap, instead of what it is, though.

> -snip-
> > I'm just trying to save us (and
> > you) from more of the same-old-same-old discussions.
> If there's any substance behind the name-calling we should be able to
> point-out specific errors on the shootout.

When the problem with the shootout is the methodology and the
presentation -- without getting into more substantial errors
(statistical problems) -- and the general unwillingness of the people
who run it to do anything to improve the methodology and presentation,
then there's not a specific error. The whole thing is wrong. Until you
understand that there's problems with your whole damned methodology
and even worse problems with your presentation, you're never going to
get it.

Even if Ruby were to become the best performing language tomorrow, I
wouldn't recommend that anyone pay attention to the pile of garbage
known as the "Great Computer Language Shootout." The only thing
"great" about it is the amount of sheer ignorance that it and its
maintainers willingly perpetuate.

Matthew Desmarais wrote:

Hi Isaac,

I've paid attention to some of the discussions on the shootout here,
but I'm not sure that I've ever had any of my basic questions
answered. Maybe you can answer them.

The site lists as its goal, "to learn about programming languages,
compare their performance in various (possibly meaningless) ways and,
most importantly, have some fun!"

What is it that we are learning about programming languages?

What do we gain from comparing performance in "various (possibly
meaningless) ways?

I don't think that I've learned much from the shootout, but it may
well be that I'm missing something. I do that a lot. :slight_smile:

Interesting questions Matthew.

imo What we learn depends on how actively we participate, and what we
already know or assume we know, and many other factors.

So I should ask
- did you try to make any of the programs faster or more elegant?
- did you try to write programs in a new language?
- did you know there was a language Clean?
- did you understand that relative performance would vary so much from
tcp-request-reply to k-nucleotide to n-body and mandelbrot?
- did you notice any patterns: slow for io, fast for number crunching?
- did you wonder why the Lua program used 100K for nsieve?
etc

Matthew Desmarais wrote:

Hi Isaac,

I've paid attention to some of the discussions on the shootout here,
but I'm not sure that I've ever had any of my basic questions
answered. Maybe you can answer them.

The site lists as its goal, "to learn about programming languages,
compare their performance in various (possibly meaningless) ways and,
most importantly, have some fun!"

What is it that we are learning about programming languages?

What do we gain from comparing performance in "various (possibly
meaningless) ways?

I don't think that I've learned much from the shootout, but it may
well be that I'm missing something. I do that a lot. :slight_smile:

Interesting questions Matthew.

imo What we learn depends on how actively we participate, and what we
already know or assume we know, and many other factors.

So I should ask
- did you try to make any of the programs faster or more elegant?
- did you try to write programs in a new language?
- did you know there was a language Clean?
- did you understand that relative performance would vary so much from
tcp-request-reply to k-nucleotide to n-body and mandelbrot?
- did you notice any patterns: slow for io, fast for number crunching?
- did you wonder why the Lua program used ~100MB for nsieve?
etc

I feel a lot of love on this thread.

Should I invoke Godwin's Law and put this argument to rest?

Okay.

All benchmarks are the brainchild of Hitler and his nazis.

···

On 8/16/05, William James <w_a_x_man@yahoo.com> wrote:

Austin Ziegler wrote:

> Then you simply can't tell. They were. Basically, the shootout you run
> is -- always has been -- and always will be -- crap. You can take
> steps to make it honest crap, instead of what it is, though.

Doug Bagley, the creator of the original "Great Computer Language
Shootout", called his system for ranking the languages "CRAPS".

It allowed him easily to tinker with the weight assigned to each test
and hence to make his favorite language come out on top.

--
Brock Weaver
http://www.circaware.com

Matthew Desmarais wrote:

Hi Isaac,

I've paid attention to some of the discussions on the shootout here,
but I'm not sure that I've ever had any of my basic questions
answered. Maybe you can answer them.

The site lists as its goal, "to learn about programming languages,
compare their performance in various (possibly meaningless) ways and,
most importantly, have some fun!"

What is it that we are learning about programming languages?

What do we gain from comparing performance in "various (possibly
meaningless) ways?

I don't think that I've learned much from the shootout, but it may
well be that I'm missing something. I do that a lot. :slight_smile:

Interesting questions Matthew.

imo What we learn depends on how actively we participate, and what we
already know or assume we know, and many other factors.

So I should ask
- did you try to make any of the programs faster or more elegant?
- did you try to write programs in a new language?
- did you know there was a language Clean?
- did you understand that relative performance would vary so much from
tcp-request-reply to k-nucleotide to n-body and mandelbrot?
- did you notice any patterns: slow for io, fast for number crunching?
- did you wonder why the Lua program used ~100MB for nsieve?
etc

I don't think that you answered either of my questions. If you have and
someone can tell me what the answers were, I'd appreciate it.

I guess I'm not sure why the site is called "The Computer Language
Shootout". To me, a shootout feels like a thing that pits two entities
against one another in a competition. The result of a shootout is
definitely a winner and a loser, depending on the definition of victory.

When you discuss the site, you talk about it as an educational tool. I'm
all for that kind of thing, and your response to me is reasonable and if I
were looking for help it would be helpful.

The problem is the use of the word benchmark. By claiming to offer
"benchmarks", the site is purporting to offer measured and standard
methods of comparisons between programming languages. The many
disclaimers show that these numbers should be taken with a grain of salt,
but the site's keywords, "benchmarking fast programming language benchmark
performance benchmarks shootout program" show otherwise.

And so I think that the site, or more specifically its design, is very
disingenuous. The site offers itself as a home for objective comparison
of the performance of programming languages. There is no such thing, and
so the site should not claim that there is.

[List of questions that don't answer the prior questions deleted.]

I've been watching this debate with some interest. I think Austin does some
harm to his position with the anger with which he seems to present it, but on
the flipside, you seem to be taking a lot of long, lazy walks around some
clear questions without actually getting to an answer. This last reply that
you sent to Matthew's questions is a perfect example. Answering a question
with a question isn't an answer. It's a dance, a circumlocution, an evasion.
Answer the man's question, one at a time. Then pose questions of your own.
That's how a debate is supposed to take place; answer a question with a
question is just weak.

Kirk Haines

···

On Tuesday 16 August 2005 2:46 pm, Isaac Gouy wrote:

Interesting questions Matthew.

imo What we learn depends on how actively we participate, and what we
already know or assume we know, and many other factors.

So I should ask

Darn. I was aiming for the "perfectly clear that I have no patience
for pseudo-intellectuals" effect. I'll try harder next time to be
clearer. It doesn't help that said pseudo-intellectual is impervious
to reality.

-austin

···

On 8/16/05, Joe Van Dyk <joevandyk@gmail.com> wrote:

Please, tell us how you *really* feel. I feel like there's some
bottled up emotions in there somewhere that you aren't telling us.

--
Austin Ziegler * halostatue@gmail.com
               * Alternate: austin@halostatue.ca

Just to help to others who might be interested in past benchmarking
and performance discussions.. I did some searching and came up with
this short list:

You can also interchangably use the URL
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/ as with
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/123456

* http://www.ruby-talk.org/cgi-bin/scat.rb/ruby/ruby-talk/145390
* http://www.ruby-talk.org/cgi-bin/scat.rb/ruby/ruby-talk/144966
* http://www.ruby-talk.org/cgi-bin/scat.rb/ruby/ruby-talk/145196
* http://www.ruby-talk.org/cgi-bin/scat.rb/ruby/ruby-talk/145455
* http://www.ruby-talk.org/cgi-bin/scat.rb/ruby/ruby-talk/151897
* http://www.ruby-talk.org/cgi-bin/scat.rb/ruby/ruby-talk/151657
* http://www.ruby-talk.org/cgi-bin/scat.rb/ruby/ruby-talk/145325

* http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/33712
* http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/59554
* http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/65270
* http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/101165
* http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/103974
* http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/104182
* http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/124795
* http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/129831
* http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/136932
* http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/133852
* http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/133902
* http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/144966

ogilthorpe@davie.textdrive.com wrote:

>
> Matthew Desmarais wrote:
>> Hi Isaac,
>>
>> I've paid attention to some of the discussions on the shootout here,
>> but I'm not sure that I've ever had any of my basic questions
>> answered. Maybe you can answer them.
>>
>> The site lists as its goal, "to learn about programming languages,
>> compare their performance in various (possibly meaningless) ways and,
>> most importantly, have some fun!"
>>
>> What is it that we are learning about programming languages?
>>
>> What do we gain from comparing performance in "various (possibly
>> meaningless) ways?
>>
>> I don't think that I've learned much from the shootout, but it may
>> well be that I'm missing something. I do that a lot. :slight_smile:
>
> Interesting questions Matthew.
>
> imo What we learn depends on how actively we participate, and what we
> already know or assume we know, and many other factors.
>
> So I should ask
> - did you try to make any of the programs faster or more elegant?
> - did you try to write programs in a new language?
> - did you know there was a language Clean?
> - did you understand that relative performance would vary so much from
> tcp-request-reply to k-nucleotide to n-body and mandelbrot?
> - did you notice any patterns: slow for io, fast for number crunching?
> - did you wonder why the Lua program used ~100MB for nsieve?
> etc

I don't think that you answered either of my questions. If you have and
someone can tell me what the answers were, I'd appreciate it.

I was trying to answer "I don't think that I've learned much from the
shootout".

Let's try again - "What is it that we are learning about programming
languages?"

I don't know what you learn about programming languages from shootout,
the website states "Our goals are to learn about programming
languages..." - the goals of the folk administering the shootout are to
learn about programming languages...

Let's try again - "What do we gain from comparing performance in
"various (possibly meaningless) ways?"

Some perspective on how performance varies between programming language
implementations and tasks.

I guess I'm not sure why the site is called "The Computer Language
Shootout". To me, a shootout feels like a thing that pits two entities
against one another in a competition. The result of a shootout is
definitely a winner and a loser, depending on the definition of victory.

History - Doug Bagley's Shootout begat Aldo Calpini's Win32 Shootout
begat Brent Fulgham's Shootout.

When you discuss the site, you talk about it as an educational tool. I'm
all for that kind of thing, and your response to me is reasonable and if I
were looking for help it would be helpful.

The problem is the use of the word benchmark. By claiming to offer
"benchmarks", the site is purporting to offer measured and standard
methods of comparisons between programming languages. The many
disclaimers show that these numbers should be taken with a grain of salt,
but the site's keywords, "benchmarking fast programming language benchmark
performance benchmarks shootout program" show otherwise.

And so I think that the site, or more specifically its design, is very
disingenuous. The site offers itself as a home for objective comparison
of the performance of programming languages. There is no such thing, and
so the site should not claim that there is.

The site provides multiple comparison programs, which show various
different language implementations "winning".

The site shows different ways to "win" - by CPU time, by memory use, by
LOCs.

The site provides a synthetic overall score and invites you to
"manipulate the multipliers and weights to make your favourite language
the fastest programming language in the Shootout" for "a solution that
is simple, neat, and wrong".

Does the site proclaim A is faster than B, or subvert that simplistic
notion?

Kirk Haines wrote:

> Interesting questions Matthew.
>
> imo What we learn depends on how actively we participate, and what we
> already know or assume we know, and many other factors.
>
> So I should ask
[List of questions that don't answer the prior questions deleted.]

I've been watching this debate with some interest. I think Austin does some
harm to his position with the anger with which he seems to present it, but on
the flipside, you seem to be taking a lot of long, lazy walks around some
clear questions without actually getting to an answer. This last reply that
you sent to Matthew's questions is a perfect example. Answering a question
with a question isn't an answer. It's a dance, a circumlocution, an evasion.

Sometimes it's none of those things, sometimes it takes a couple of
conversational turns before we are all clear what the real questions
are.

http://groups.google.com/group/comp.lang.ruby/msg/613e239d096f7138?hl=en&

Answer the man's question, one at a time. Then pose questions of your own.
That's how a debate is supposed to take place; answer a question with a
question is just weak.

Is debate the only form of conversation that's acceptable here, or can
there be discussion without winners and losers?

···

On Tuesday 16 August 2005 2:46 pm, Isaac Gouy wrote:

thank god someone did.

···

On 17/08/2005, at 5:03 AM, Brock Weaver wrote:

I feel a lot of love on this thread.

Should I invoke Godwin's Law and put this argument to rest?

Godwin's law - Wikipedia

Okay.

All benchmarks are the brainchild of Hitler and his nazis.

On 8/16/05, William James <w_a_x_man@yahoo.com> wrote:

Austin Ziegler wrote:

Then you simply can't tell. They were. Basically, the shootout you run
is -- always has been -- and always will be -- crap. You can take
steps to make it honest crap, instead of what it is, though.

Doug Bagley, the creator of the original "Great Computer Language
Shootout", called his system for ranking the languages "CRAPS".

It allowed him easily to tinker with the weight assigned to each test
and hence to make his favorite language come out on top.

--
Brock Weaver
http://www.circaware.com

Sometimes it's none of those things, sometimes it takes a couple of
conversational turns before we are all clear what the real questions
are.

http://groups.google.com/group/comp.lang.ruby/msg/613e239d096f7138?hl=en&

"Real questions"? A real question is a question that someone asks. It's
generally safe to assume that the question someone asks is the one that they
want to have answered. You may think you know better than they do what
question they truly want answered, but that's a different issue.

Is debate the only form of conversation that's acceptable here, or can
there be discussion without winners and losers?

I said nothing of winners or losers. And I stand by my statement that
answering a question with a question, as in your prior post is a
circumlocution. It's useful if you don't have a good answer, especially if
you want to imply that you have a superior understanding without actually
saying anything useful, but it's a lousy way to have a conversation.

And that's about as far off topic as I personally want to carry this. It's
time to make dinner for the kids and then go write more Ruby code (had to get
Ruby into the post somewhere).

Kirk Haines

···

On Tuesday 16 August 2005 6:01 pm, Isaac Gouy wrote: