プログラムのパフォーマンス

Rubyスクリプトを書いて、Railsもちょこっと勉強して、ActiveRecordを使ってDBにアクセスしてみたのだが、私が必要とする速度がでない。予想通りだけど。ORマッピングを使うより、直接SQLをたたいた方が早いわけで、今必要としていたのは、定型的だけど、なるべく早くみたいな感じなので、ActiveRecordを利用していた個所を、全部 SQL に置き換えたら当然早くなった。しかし、当然ながら誤差に含まれるところもあったり、劇的に早くなる個所とかあったり、色々なんだけどね。

それほど習熟しているわけじゃないけど、Rubyは私にとって、書きやすいスクリプト言語だ。いまだ、Googleで検索して、どんな風に使うのか調べるレベルだが。他の言語で、0.1秒で終わる処理が、たとえRubyで0.5 秒になったとしても、Webアプリのような場合は、ネットワークの速度が加味されれば誤差の範囲の場合が多い。それに、最近はUnitテストもあるので、ちゃんとUnitテストを組み込めば、Webアプリとかでは有用だなぁと再認識した(おそらく、お手軽に実現するのはえらく簡単だが、ここを忘れると後々困るのだろうなぁ。お仕事とかでは)。スクリプト言語はお手軽に書けるから、1個動くのはすぐにできるけど、その後、テストがないと、変化に弱く、ほころびが目立つのでは?と個人的には思ったりする。そうなると、静的型付けがなされる、Javaとかの方が、変化に比較的強い(コンパイラがエラー出してくれるし)のではないかと思う。その代わり、同じ事を実現するにしても時間が掛かるだろうと思う。エラーに寛容なところでは、スクリプト言語でさっと書いて、それほどではない、また技術者が足りない、環境が構築しずらい、などになると最大公約数的な言語で書く感じだろうか。適材適所を考えて使い分ける事ができればいいのだが。

Railsチュートリアルをちょこちょこいじってるけど、後は、ブックマークの新着順(前にlast_updatedってやったけど、あれは別の名前にしよう。付けた後、自分でおかしいと思った...)、Click数によって、人気のリンク、ブックマークページの簡易検索、ぐらいが出来たらおもしろいかと。あとは、タグ?とユーザ認証をつければ?ブックマークっぽいのができあがりだ。この辺を考えつつ、もう少し練習してみるかな。