[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Re: python/ruby benchmark(don't shoot the messenger

Nuralanur

6/13/2005 10:17:00 AM

Hello,

well, I would not spend money to buy banners on Alioth saying,
"Don't trust these benchmarks!", either.
But I think ,too, that benchmarks do not tell the whole story and in
many cases are misleading.
I am working in theoretical modelling for biology and I was using
mainly Matlab and C because the first one is such a convenient scripting
language
and the latter is so quick before I came to know (and like) Ruby.

I think that benchmarks are significant if you do a very limited amout of
things
and do them very very many times in your work.
So, in PDE models for biological cells, you can use numerical integration,
treat
a zillion different parameter values to search for parameters that might suit
the experimental behaviour you are looking for. I bet that C and maybe many
other languages are faster on that than Ruby.
However, you can treat the same problem using symbolic algebra.
Then you may learn at 8.00 am on some day that something called a Groebner
basis (doesn't matter what that is, just tell somebody and they'll think
you've just dropped from Mars) could be very useful to calculate a solution in
much less steps.
But you have to implement that in C, because you don't find an implementation
that suits your needs quite exactly (it's nice to have fractions in the
parameters
and a non-commutative variant of Groebner bases in my case, and
Maple/Mathematica
didn't quite work for some reason I don't recall at the moment - but nobody
I talked to could
fix in the amount of time they were willing to think about it).

Now, most of my enthusiasm for Ruby comes from the fact that you find
implementations of things that you need (and you can be confident
to do so even for problems you didn't know you would have) which you can
modify
or combine easily in such a way that the speed of C from the benchmark list
looks quite faded, because you need to add all the development time to it
(which is rather huge in my case).
It has even happened that I finished a programming task earlier than
scheduled,
but so far, only when using Ruby.
So, my personal benchmark would be:
How long does it take for me to implement problem X in code and execute it
in language
Y versus language Z?
In reality, for me, this will often mean: I can use C and a stupid problem
finding strategy
(which is fast, but has to check a zillion things, so it's slow after all)
against a
more intelligent strategy, which I could implement faster in Ruby (also, it
doesn't seem
such a daunting task to start implementing it anymore).
Since I use Ruby, I still have a lot of problems, but they keep changing
much faster
than earlier and I do less routine work.

That's what I'd write on a banner if I had money to buy one.
So I agree with Austin's benchmark about customer happiness of customer as a
benchmark.

Best regards,

Axel
3 Answers

Isaac Gouy

6/13/2005 3:41:00 PM

0

Nuralanur@aol.com wrote:
-snip-
> So, my personal benchmark would be:
> How long does it take for me to implement problem X in code and execute it
> in language Y versus language Z?
> In reality, for me, this will often mean: I can use C and a stupid problem
> finding strategy (which is fast, but has to check a zillion things, so it's
> slow after all) against a more intelligent strategy, which I could implement
> faster in Ruby (also, it doesn't seem such a daunting task to start
> implementing it anymore).

Or with Language XXX(TM) we could develop an intelligent strategy and
then, after high-level experimentation, compile the code to give a
program with performance 2x-3x of the gnarly C program.

Tanner Burson

6/13/2005 4:23:00 PM

0

On 6/13/05, Isaac Gouy <igouy@yahoo.com> wrote:
> Nuralanur@aol.com wrote:
> -snip-
> > So, my personal benchmark would be:
> > How long does it take for me to implement problem X in code and execute it
> > in language Y versus language Z?
> > In reality, for me, this will often mean: I can use C and a stupid problem
> > finding strategy (which is fast, but has to check a zillion things, so it's
> > slow after all) against a more intelligent strategy, which I could implement
> > faster in Ruby (also, it doesn't seem such a daunting task to start
> > implementing it anymore).
>
> Or with Language XXX(TM) we could develop an intelligent strategy and
> then, after high-level experimentation, compile the code to give a
> program with performance 2x-3x of the gnarly C program.
>
I've tried to stay out of this thread, because I don't feel it's
providing, or furthering much intelligent discussion. But what on
earth are you attempting to say by this quote? Or are you just
throwing out random things for the sake of saying that somewhere, for
a given problem domain, there is a language more suited than Ruby? If
so thanks, point taken. If not would you mind clarifying by saying
something a bit more descriptive? Is the above quote actually in
reference to a given language you're attempting to introduce everyone
to? Or is it just a generic example with no meaning whatsoever?

>
>


--
===Tanner Burson===
tanner.burson@gmail.com
http://tanner... <---Might even work one day...


Isaac Gouy

6/13/2005 6:42:00 PM

0

Tanner Burson wrote:
> I've tried to stay out of this thread, because I don't feel it's
> providing, or furthering much intelligent discussion. But what on
> earth are you attempting to say by this quote? Or are you just
> throwing out random things for the sake of saying that somewhere, for
> a given problem domain, there is a language more suited than Ruby? If
> so thanks, point taken. If not would you mind clarifying by saying
> something a bit more descriptive? Is the above quote actually in
> reference to a given language you're attempting to introduce everyone
> to? Or is it just a generic example with no meaning whatsoever?

Sorry.

Only 2 options were presented - slow-to-write fast-to-run C and
fast-to-write slow-to-run Ruby - there are other possibilities. That's
all.