Rubyを最大63%高速化した中学生 128
ストーリー by hylom
周囲の環境が興味深い 部門より
周囲の環境が興味深い 部門より
あるAnonymous Coward 曰く、
@ITにて、@ITの「Rubyを最大63%高速化した中学生は超多忙!」というインタビュー記事が公開されています。
これまで、Lispの“仏さま”竹内郁雄氏、東大博士課程の女性プログラマ五十嵐悠紀氏、プログラミング言語Cyanを開発した高校生 林拓人氏、その続編(「国語ができる(=日本語できちんとした文章が書ける)人じゃないとプログラムは書けない」という竹内郁雄氏の発言の解説)に続く、連載物の一つである。
今回の記事の筑波大駒場付属中の3年生金井仁弘氏は、/.Jでも告知があった「セキュリティ & プログラミングキャンプ 2009」に参加し、Ruby1.9がRuby1.8よりフィボナッチ数列の計算で低速化しているのに着目、構造体の判定メソッドの一部をループの外に出すことで最大で約63%、全体で約8%の高速化に成功したと言う。また「RSA解読のためのフェルマーの小定理の証明」を授業で行っているなど、色々と興味深い内容だ。
皆さん、中三の夏に何してました?
今でこそアレゲではありますが (スコア:5, おもしろおかしい)
> 皆さん、中三の夏に何してました?
恥ずかしながら、数学ではある記号の特定の組み合わせから導き出される数値と
同様に導かれる2のべき乗との積、および数値の切り上げ、切り捨てについての特訓をしていました。
外国語については、おかげ様で数字と反射的な掛け声、
それ以外にも多少の単語を中国語で何の痛痒も感じず発声できるまで
身につけることができました。
さらに人の思惑をごく限られた情報から推測する方法を学び、
上記に基づく戦術や戦略といった意思決定に関する方法論や
確率論に関して深く考えたのもこの時期です。
これらについて気のあった友人達と毎日のように学習していたため、
ゆくゆくは社会人となる身にとって非常に有意義だったはずなのですが、
迫りくる高校受験に対しては不安でしかたありませんでした。
Re:今でこそアレゲではありますが (スコア:3, おもしろおかしい)
私が考えるに、学習されていた科目にやや偏りが見られますので、それが不安の原因だったのではないでしょうか。
例えば理科でいえば鳥の飛行の観察 [geocities.jp]、また技術 [yahoo.co.jp]や音楽 [yahoo.co.jp]といった幅広い科目を学ぶと、気分転換にもなってよかったのではないかと愚考します。
それでも不安が取れなかったのでしたら体調が悪かったのかもしれません。健康診断で血液検査 [ntv.co.jp]はちゃんと受けましたか?
#そんな中三は嫌なのでID
Re:今でこそアレゲではありますが (スコア:2, おもしろおかしい)
実際に習ってみると、発音の難しさに舌をまくんですよね。
ホント、舌の動きがネックでしたね。
喉の使い方にもクセがあって、初めのころは大変つらかった思い出です。
でもね、美人の先生が自分の舌を示しながら説明して下さる様は
大変宜しいものでしたよ。
#なんとなくACで
Re:今でこそアレゲではありますが (スコア:1, 参考になる)
# それだけだし無粋なのでAC
オナニーしてた (スコア:3, おもしろおかしい)
Re:オナニーしてた (スコア:2)
俺も大体そんな感じだった。あと意味なく体を鍛えてたかも。
妖精哲学の三信
「だらしねぇ」という戒めの心、「歪みねぇ」という賛美の心、「仕方ない」という許容の心
Re:オナニーしてた (スコア:2)
Re:オナニーしてた (スコア:2)
中三の夏休みは一日18時間ぐらい勉強してたんですけど、オナニーは必ず三回してましたね。
# さすがに塾の合宿の時は無理でしたが...
三日風呂に入らなかったら、あなたはすめるまんです。
Re:オナニーしてた (スコア:1)
毎日10回ぐらいしてました。
Re:オナニーしてた (スコア:1)
Re:オナニーしてた (スコア:1)
すげぇ!(元記事の流れで言うなら)天才!www
自分がその年の頃はそんなこと思いつきもしてなかった!
#大学院生になってから文献調査wによって自慰の存在を知りました。(まじで
…でも、ストーリーが引用してる記事では竹内氏はすごい勢いで中学生持ち上げてるけども、
(褒めて延ばそうという方針なのかな?といって、まぁ特にインタビューで追及したり貶す理由もないんだけども。)
俺言語や俺プロセッサの設計とか、ソースコード上でループ・ホイスティング最適化とか
別に天才中学生でなくてもプログラム書いてれば皆フツーにやってたようなことだよね?
昔は今ほど整った開発環境もネット環境もなかったし、一々コンテストに出たり他人に開陳しないだけの話で…。
(…まぁ途中で立ち消えになることが多い趣味プロジェクトを完成させた持続力はエライかもしれない。)
#私自身はコンピュータに触れたのが高校1年生になってからだからアレだが…。
黒色火薬とかで遊んでた (スコア:2, 興味深い)
納屋にあった硝酸カリウムの瓶を見つけたので,黒色火薬で遊んでました.
今考えたら,あまりほめられたものじゃなかったな.
ペンシルロケットぽいものをつくってました.
多分30~40メートルは上昇したと思う.ショボ.
あと,電界コンデンサに逆の電圧かけて時限爆竹にしてました.
全て中学生にもなって夢中になってた「ひみつきち」での話です.
1チャネルだけ入力が壊れたケンウッドのオシロスコープも拾ってきた.
電源部分だけが壊れて捨てられてたCB無線機で遊んでた.
役に立つこととしては地元の河川のCODとBODを源流までさかのぼって調べてみました.
ビュレットを雑に扱って殴られました.あれはいい体罰.
屍体メモ [windy.cx]
電界→電解 (スコア:1)
電界コンデンサってなんだ~
コンデンサってあまねく電界の中に極板を置くものであって・・
正しくは電解コンデンサです.
屍体メモ [windy.cx]
Re:へぇ (スコア:2)
>皆さん、中三の夏に何してました?
が、読めなかったのかな?
理屈っぽいけど普通の子でした (スコア:2, 興味深い)
コンピュータはせいぜいワープロ専用機しかありませんでした。
塾通いしながら勉強して、同級生の女の子とも仲良くして
なぜかその子の部屋の留守番までしちゃったりして…(大人しく自習してましたよ)
中高生当時、もうちょっと男子としての勢いと誠実さがあればまた違った人生を歩んでたかもしれんなぁ。
あれ、何の話でしたっけ?
# 思い出すと恥ずかしいのでACで
80sの中学生なんて (スコア:2)
塾通いながら、アニパロコミックスや同人誌を熟読していました…;;
Re:80sの中学生なんて (スコア:2)
BIOS (int21 もどき)、コンパイラの概念は、6809 FM-7 で会得したなぁ。
中三のころ (スコア:2, 興味深い)
大人になった今でも耐えられません。
Re:中三のころ (スコア:1)
記事の内容もこの少年のことにも否定的な気分にはならないのだけど、この写真はちょっと悪ノリなのか本気なのか分からなくて反応に困りますね。
#それはそうと中学三年の頃にやっていたことを自爆ネタにできず、自分がそれほど大人になれてなかったことに気づいた。
LIVE-GON(リベゴン)
Re:中三のころ (スコア:1, すばらしい洞察)
Re:中三のころ (スコア:1)
いやいやいや。むしろそういったもの一切合切を前提とした話ですよ。
この写真は「カメラマンの要求なのか?」「編集者の要求なのか?」「インタビュイーの要求なのか?」「学校関係者の要求なのか?」「ほかの誰かの要求なのか?」そして、これにノリノリでオーケーを出した人は誰で、しかたなく承認した人は誰なのか? そんでもって、そういった関係者がそれぞれ、ネタのつもりなのか、それとも本気だったのか?
そのへんが分かりにくいので困ります(笑)
LIVE-GON(リベゴン)
目指せ!フィールズ賞/ノーベル賞 (スコア:2)
これだけの才能があるなら、一生をプログラミングだけに捧げるってもったいないよね。
#いろいろ目指してプログラミングに流れ着いたジジイからのアドバイス
プロジェクト × (スコア:1)
掲載されたのが「@IT自分戦略研究所」だけに、IT業界へのマイナスイメージを払拭するために、
無駄に美化してるんじゃないかと邪推してしまうんだが。
たとえば「63%」と言われると正確に計測された気になるけど、実際にはマイクロベンチマークの
結果は初期条件等でコロコロ変わるから、「およそ6割くらい」というべきじゃないかな。
また「最大63%の高速化」っていうけど、平均何%なんだろう?平均60%ならなかなかの
ものだけど、それにしても、日本ではそれを業績として認めて貰えるものかな。たとえば彼が
就職氷河期の中、高卒くらいでIT企業に応募して採用してくれる企業がどれだけあるだろう。
初任給は普通の高卒に比べてどれだけ高くなるだろう?それとも全くの横並び??
どこかの企業が採用して、初任給で1万円高かったとしても、言い換えれば年間12万円というのが
企業が認めた彼の価値ってことだよね。
ちょっと面白かったので,ついでに.
http://yshibata.blog.so-net.ne.jp/2009-10-27 [so-net.ne.jp]
「ロシア人プログラマーVladimir IaroslavskiyとJoshua Bloch、および、John Bentlyが取り組んできた
Dual Pivot Quicksortのパフォーマンス結果が公開されています。
30年前以上(前)に考えられたアルゴリズムです。」
Re:プロジェクト × (スコア:3, 参考になる)
言語処理系の高速化で「平均値」を持ち出すのはナンセンスです。母集団の分布も、母集団そのものも、これといった定義がないからです。また平均値自体に意味があるとも限りません。例えばある条件下で63%高速化されるとして、その条件が世間一般でどれくらいの頻度で現われるかによって、いくらでも「63%」の意味が変わります。
計算機科学の分野で最大値とか最小値が指標としてよく使われるのは、そういう意味においては、ゆるぎのない指標として使えるからです。もちろんその値を受け取った人は、その「最大値」が自分にとってどういう意味かを考える必要がありますが。平均値は、受け取っても扱いにくい指標なのです。
いずれにせよ、元記事の段階で色々情報不足なのですが、その辺は雑誌記事ですから、まぁお話程度に受け取っておけばいいでしょう。「平均値が示されていないから意味がない」とかいう以前です。
Re:プロジェクト × (スコア:1)
> 初任給は普通の高卒に比べてどれだけ高くなるだろう?それとも全くの横並び??
別に最初は横並びでいいんじない?
実力が本物なら、それ相応に評価も上がっていくでしょう。
別に上がらなくてもいいしね (スコア:1)
正直30代で30万くらいもらえれば,それ以上は給料上がらなくてもいいけどね.
と,定年後は家賃のいらない田舎がある人はそう思える.
年取ったら新たに部屋借りることも難しいしね.
家庭や趣味を持つとそうはいかないんだろうけど.
屍体メモ [windy.cx]
趣味はともかく (スコア:2, 興味深い)
趣味はお金かけずに楽しむこともできますね.
実際自分の趣味は川でとってきた水棲動物の飼育でコストほぼゼロですし.
ただ家庭となるとモノも食うし住むし着るしということで
そういう場合にはお金はあればある程良いと思います,私も.
家族にはいらぬ我慢はさせたくないですからね.
だから頑張りすぎず給料もそこそこで家族は持たない,
という選択肢もありだよね,ってことを書いたつもり.
今の時代家族(特に子供)は持たないという生活防衛もあるかと.
屍体メモ [windy.cx]
Re:プロジェクト × (スコア:2)
>最高レベルの進学校に在学中なのだから、当たり前に東大に進学してエリートコースを進むんだよ。
「あたりまえのように東大に進学」は結構だが、「エリートコースを進む」ねえ。
大学とIT業界に幻想を持ちすぎ。
まあぶっちゃけ、進学校で受験勉強に明け暮れれば、プログラミングなんてする暇は
無くなるって。本格的にプログラミングを始めるとすれば、大学入学以降かな。
>高校を卒業する3年後にこのままのレベルでいるわけがない。
「少年老いやすく、学成り難し」
「十で神童、十五で才子、二十歳過ぎれば只の人」
という諺もあるんだが。スタートダッシュが他の人よりちょっとくらい早くても、
才能の壁を乗り越えられる保証などどこにもない。
もちろん、今後もぐんぐん成長していって欲しいと思う。
米国に留学して、シリコンバレーの一流の技術者になって、幸せな人生を送って
くれればなおいいだろう。それは、どの若手技術者に対しても言えることだ。
だがその夢を現実の物とするのは、Rubyをたかだか数%早くするよりも、
ずっと難しいものなのだ。
両立できるバランス感が一つの才能かもしれない (スコア:1)
でもまぁ、投入リソースのバランスの問題もあるんで、
コンピュータ(に限らず趣味)のほうにハマちゃって勉強しなくなるとかの転落コースも普通にあったけどね。
(私自身は進学校でなかったのだが、進学校に進んだ友人たちのその後を見てると。)
そういう意味では自律して両立できるバランス感や
無駄な努力に見切りを付ける早さとかが一つの才能なのかもしれない。
はい、あーん (Re:プロジェクト ×) (スコア:1)
http://jibun.atmarkit.co.jp/ljibun01/rensai/genius/05/01.html [atmarkit.co.jp]
Hiroki (REO) Kashiwazaki
Re:プロジェクト × (スコア:1)
#見落としていただけです。揚げ足取りは不要。
>ループ内で定数化するマクロを除去することで一部メソッドを最大で約63%、全体で約8%の高速化に成功した。
やっぱり詳しいことはほとんど何も書いてないですね。
ベンチマークの条件を見ないと、正確な所は何も言えないよ。
Re:プロジェクト × (スコア:1)
>#見落としていただけです。揚げ足取りは不要。
これって、
>「最大63%の高速化」っていうけど、平均何%なんだろう?
と、自分が疑問に思ったことがそのまま本文に書かれているにもかかわらず、それを見落としたのに、
「見落としただけ」
なんて言えるのは結構すごいですよね。
Re:はい、あーん (Re:プロジェクト ×) (スコア:2)
国語ができる != 日本語できちんとした文章が書ける
だと思う。
Re:プロジェクト × (スコア:1, 興味深い)
なんというか、この少年は「Rubyの一部処理を63パーセント高速化」なんて事をしなくても
普通に凄いよね。
凄い人間はこんな事も片手間にできますよ、という話に見える。
Re:プロジェクト × (スコア:1)
邪推は核心を突いているかもしれない。「63%」は「およそ6割」というべきかもしれない。
でも「金井少年が高卒で就職したら」という普通はありえない仮定で、彼の初任給の多寡を論じることに何か意味があるのかな?
「約63%」という表現にした裏を読んだところで、それはレトリックの範疇に入れていい些末なことだと思うよ。
俺は割と素直に「金井君、すごいなあ」と思って読んじゃうけどなぁ。
受験勉強 (スコア:1)
普通の中学三年生の夏休みは受験勉強に費やすものだろう。
夢をみていました。 (スコア:1, 興味深い)
他人に誇れるものや才能はほとんど持ち合わせていませんが、これだけは誇りに思っています。
そうでなければ今の職についてはいなかったと思うので。
多重録音していました (スコア:1)
カセットデッキを2台つなげて、間にギターの音を挟み込んで多重録音をしていました。
それを5回くらい繰り返すことで、なんとなくMike Oldfieldの気分(と苦労)を味わっていました。
# Apple iLife の GarageBandを見て、今はなんと素晴らしい時代だろう、としみじみ・・・
中三の頃なにしてたかなぁ (スコア:1)
レモンピープルを書店で見て
こんな雑誌があることにすごい衝撃を受けたなぁ。
#耐性は付いたかもしれないがやっぱヤだね
素直にこいつすげえって思った (スコア:1)
> 金井氏:make testは通るのですが、rb_yield()の存在によって、arrayに破壊的変更が加わり
> SEGV(セグメント違反)してしまう可能性がありました。
おいおい、中学生の発言かよ…。
> 金井氏:いま、RSA暗号を実際に解くためにフェルマーの小定理をやっています。
どんな学校だよ…。
基礎もガッチリして、センスもある。そして中学生には無限とも思える時間がある。
好きなこと興味のあることどんどん手を出して、なにかを生み出して欲しいですね。
あと写真かっこよくとられすぎだよ。君。
#負けないようにがんばろう。叩いてもおれに進歩はない。
Re:.NETer (スコア:2, 興味深い)
それなりなスペックの PC 上で使ってみればわかるんじゃない?
あの便利さに慣れちゃうと、他の環境で開発する気がなくなると思うよ。
Re:.NETer (スコア:2, 参考になる)
Windowsを使わなくなるくらいアンチMSじゃなければ誰でも素養はあるのでは?
私もVSで普通に開発してますよ。嫌いになる理由が見つかりません。
Re:.NETer (スコア:1)
一度目は、エディタが酷く重くなり、インテリセンスが悪いんじゃなかろうかという 勘でMSDNヘルプを一度消し去って最新のだけを入れ直してみたら直りました。 新しいMSDN Libraryが出てくるたびにうれしがって端から入れていたのが悪かったような気もしますが詳細は不明です。
二度目は、デバッグの起動・終了にものすごい時間がかかる現象ですが、こちらは検索すると簡単に情報の見つかるFAQのようで、 起動時にデフォルトで表示されるトップページのタブを閉じると解決します。
と言うわけで、嫌わないであげて下さい。
Re:.NETer (スコア:1, すばらしい洞察)
オプションで機能を切れますよ。
# 嫌いになる理由じゃなくて、嫌いだから理由を探してるんじゃない?
パースペクティブって概念に気がつかなかった (スコア:1)
パースペクティブ
そんな概念があることすら知らずに使い始めたEclipse
今ではPyDevとかTexlipseとかAptana関連とか便利に使ってます.
ただ C++ での開発とかコード読解は Visual C++ 万歳.
もうね,インテリセンス無しではコードが書けない体に.
時々インテリセンスが発狂するけどそこはご愛敬.
屍体メモ [windy.cx]
予算がないので (スコア:1)
Eclipse+Javaなら機能をすべて使えますが、VisualStudio+C#は機能制限版のExpressしか使えません。
なんかお金を払うとリファクタリングとかソースコード管理とか色々機能はあるみたいなんですが、
そこをちゃんと買って使ったら好きになれるのかな?w
現状、嫌いってほどじゃないけど特に好きになる要素はないかな。
C#とJavaは似てるところが多いんで、乗り換えるコストも低そうだけどわざわざ乗り換えたくなる動機も薄い。
ゲッタ、セッタ、インデクサは面白いなと思ったけど、呼び出し側向けのシンタックス・シュガーでソフトウェア設計上は本質じゃないしなぁ。
#呼び出される側のコードの構文や継承規則は却って面倒になってるだけだし。
Re:いたって普通じゃないの? (スコア:1, 参考になる)
Lispや関数型言語も多いですね。
JavaやC++関係では、ほとんど見たことが無いのですけど。
つまり、あなたや私が知らないだけで、この世の中にはフィボナッチ数列を日常的に必要としている人が結構いるということではないでしょうか?
フィボナッチ数列(Re:いたって普通じゃないの?) (スコア:1)
>必要としている人が結構いるということではないでしょうか?
世の中に出回っている、”fib.rb" とかのコードは再帰関数呼び出しの
ベンチマーク・デモ用です。いわば、わざと非効率なことでコンピュータを
いじめてるようなもんです。
ホントにフィボナッチ数列が欲しけりゃ、人間がやっている手順そのままに
やったほうが、一億倍マシです。
ま、それが判るようになるのもアルゴリズムの勉強の一環なんですがね。
Re:暑い部室で (スコア:2, 興味深い)
僕も中三の夏はベーマガ投稿用ゲーム作りに費やした。
結果は没で秋から冬の寂しさを始めて感じた年だった。
そのころ簡単なコンパイラにも手を出した。
簡単な式の評価部分と条件分岐が少しあるだけの制限仕様にしたけれど
完成させられなかった。
かつてOh!MZにFUZZY BASICコンパイラが掲載されたとき、作者が高1なのにびっくりした。
Rubyの最大63%高速化はすごいけど、最近の子供のシステムプログラミングは
複雑さばかりで、ゼロから作っちゃうどきどき感は感じられなさそうで、幸せなのか不幸せなのか
と思ってしまう。
Re:治療中だったのでは? (スコア:1)
> # GB版のWizは良くできてたなー
> ## こんなゲームからRPGに入るからドラクエとかFFとかやらなくなるんだよ
そんなあなたにはドラクエ9をオススメします。
一応ストーリーはありますが、クリア後もプレイ続行できます。
ていうか、クリア後の方が格段にプレイ時間長いし。
今は、良いアイテムを求めて、ダンジョンに潜っては敵を殺しまくる毎日です。
Wizで「MURAMASA BLADE」や「SHURIKENS」を探してた日々と似たような感じ。
あとは、中3で遊んでたのはブラックオニキス [wikipedia.org]やポイボス [wikipedia.org]あたりかな。
#ムーストーンやポイボス2を今でも心待ちにしてるのでID。