
Japanese Teenage Boy Improved Ruby 1.9 Performance By Up To 63% - fogus
http://yokolet.blogspot.com/2009/11/japanese-teenage-boy-improved-ruby-19.html
======
bradfordw
This is like me taking my son hunting, holding the gun for him and having him
pull the trigger for the kill.

His mentor was Koichi Sasada...he wrote YARV!

Don't get me wrong, I think it's great to get kids involved. But it's not like
he walked in off the street, "saw the matrix" and then committed a patch.

I can already sense the razzing coming from the Python camp! :)

~~~
fiaz
Can you somehow prove that Koichi made the solution SOOO obvious that even a
teenager could have made the fix?

From what little I've read, it seems to me that this kid is pretty smart and
has made a very generous contribution to the Ruby community.

~~~
tsally
I would have been plenty impressed if the article was framed like that,
without the hype. As you say, the kid has made a great contribution at a young
age. No need to dress up a good thing.

------
Confusion
He improved the performance of _a few specific methods_. Not of Ruby in
general.

Google translation of the article referenced in the article:
[http://translate.google.com/translate?prev=hp&hl=en&...](http://translate.google.com/translate?prev=hp&hl=en&js=y&u=http%3A%2F%2Fjibun.atmarkit.co.jp%2Fljibun01%2Frensai%2Fgenius%2F05%2F01.html&sl=ja&tl=en&history_state0=)
(mostly funny to read, as the translation is quite wacky)

(Bablefish chokes on the site)

~~~
xpaulbettsx
The methods he improved the perf of were in string, array, and struct. I think
that counts as "globally improves performance", there are very few non-trivial
methods that won't benefit.

~~~
jackowayed
but they won't improve performance as much. AND the 63% figure was very
misleading anyway since that's the best case, and average is only 8%.

So basically, if your program does nothing but call those methods in such a
way that it satisfies the best case improvement, it just got 63% faster at
doing nothing.

If your program does nothing but call those methods with the average case, it
just got 8% faster at doing nothing.

If your program uses anything else, it's probably only faster by a small
fraction of that 8%.

~~~
WesleyJohnson
>..the 63% figure was very misleading anyway since that's the best case...

Which is exactly what I took "up to 63%" to mean. I don't see that as
misleading. If a drug administration company was listing off the side effects
of a new over-the-counter drug and mentioned fatality rates we're on average,
2%, but failed to mention that the worst-case scenarios (where the patients
were Hispanic females over the age 35) had a 80% fatality rate, would you also
consider that misleading? Of course you would.

So why is citing the extremes of a positive considered misleading, while
citing extremes of a negative is almost expected?

------
tsestrich
"Japanese people were surprised about the news since he made that in his age."

As opposed to most other people, who were not surprised at all?

I agree though, the title implies that he improved all of Ruby's
performance... even though it was just several methods. Still cool that he got
into this kind of project at a young age, but it's not like he re-wrote a
bunch of algorithms or something....

~~~
UncleOxidant
"His mentor was Koichi Sasada (ko1)."

That's the guy who wrote YARV. So it's not too surprising that ko1 would point
him in the right direction.

------
santry
The title, which _is_ from the original article is a bit misleading, no?

 _The performances of the methods he worked have been bumped up 63% in
maximum, 8% in average. His patches were applied to Ruby trunk in Oct. 5 this
year._

I'm not knocking the kid's contribution, but the title oversells it a bit,
implying that the kid improved Ruby 1.9's overall performance, which
apparently isn't the case.

~~~
roc
That they were using and contributing to an open source project for study was
more surprising to me than the details of this improvement.

------
fsniper
Being smart and attentive to detail are not related to age. So I'm not much
surprised. Lucky for FLOSS and Ruby communities, one more new and bright guy
came in.

------
tome
Well done, but why wasn't the compiler doing this automatically?

~~~
tedunangst
It takes a very sophisticated compiler to know that rubyobj->isString will
always be true when the ruby interpreter is evaluating a constant string.

~~~
mahmud
isString is the cheapest method out there, it just tests a tag bit in the
pointer. Pretty much an AND followed by a branch.

~~~
apgwoz
... except for setting up the function call, and all that jazz.

