Weekly Top 10

Rubyで笑ってお仕事

2007/11/19

 先週の@IT NewsInsightのアクセスランキングは第1位は「日本は組み込みエンジニアが7万〜9万人不足している」だった。インドベースのSI大手タタグループが、日本向け組み込み事業を拡大するというニュース。

NewsInsight Weekly Top 10
(2007年11月11日〜11月17日)
1位 日本は組み込みエンジニアが7万〜9万人不足している
2位 マイクロソフト、Windows Vista SP1のテストを拡大
3位 グーグルが「アンドロイド」SDK公開――動画デモも
4位 IT業界の常識を知っていますか?
5位 「社内にSaaSを」、WebメールのZimbraが日本で本格始動
6位 ブラウザでセカンドライフ、3Diが開発
7位 グーグルが日本の開発者向けサイトを開設
8位 グーグルが絶賛、オラクル次世代アプリはUI重視
9位 米オラクル、Xenベースの仮想化技術「Oracle VM」発表
10位 自動車保険もデータ量の時代

 先週のランキングとは関係がない話で恐縮だが、ランキング表の話を少ししたい。

 毎週お届けしているこのランキング表だが、実はRubyで作成している。ランキングを掲載するという企画を思い立ってから実際に始めるまでに1日か2日と、急に開始したという事情もあって、最初は手書きでHTMLタグをカット&ペーストしていた。いずれシステム側で吸収すればと思いながらも日々は流れ、気付けば毎週むなしい作業を繰り返すようになっていた。

 まずログ解析のシステムからURIのリストを引っ張ってくる。1つずつURIをコピー&ペースとしてWebブラウザでアクセスする。Webページが開くのを待つ。開いたら、そこからタイトルをコピー&ペーストで抜き出し、URIとタイトルを、それぞれHTMLのひな形の適切な場所に埋め込む。それを10回繰り返す。

 単純な作業だが、気が滅入るのはマウス操作。コピーする文字列を正確にドラッグするのは神経をすり減らせる作業だ(なぜWebブラウザでは意図しない範囲をマウスカーソルは勝手に指示したがるのか?)。HTML文書の似たような文字列の中からペーストする先を正しく探し出してクリックするのも思いのほか煩雑な作業だ。作業時間自体は5分程度しかかかっていないのかもしれないが、精神的な負担や疲労感は大きい。

 ともあれ、テキスト処理やネットワーク処理に強いRubyのようなスクリプト言語は、こうしたちょっとした作業にうってつけだ。「指定URIにアクセスしてTITLEタグから必要なタイトルを抜き出す」という処理はネットワーク関連のライブラリ「open-uri」を使えば、わずか9行で書ける。10位分のランキングを出力するスクリプト全体でも、埋め込み文字列の行をのぞけば60行ほど。普段ほとんどコードを書かない記者でも1時間ほどの試行錯誤で完成した。

 記者はRuby使いにはほど遠い。毎度毎度、書くたびに基本的な決まり事を忘れているような状態だ。それでもRubyを使っていつも感じるのはプログラムを書くことの楽しさだ。思いつくままに何かの機能を実現する数行から十数行のコードの塊を書いていく。個々の機能が意図した通りに動くのを見るのは実に楽しい。全体が完成してランキング表が正しく出力されたときには、思わず笑みがこぼれた。

 「Hello World」を表示するだけで、やたらと高い学習コストやコード行数を要求される昨今の「フレームワーク」のようなものと異なり、テキストエディタで気軽にタイプするだけというシンプルさで大きな力を発揮するRubyに、非職業プログラマの私は魅力を感じる。最近、Pythonの勉強をして分かったが、私がRubyに感じる気軽さはPythonにはない。書き捨てでいいと割り切って最短距離で機能を実現したいとき、「誰が書いても似たようなコードになり、可読性や保守性が高い」ことはメリットにならない。「たぶんこうすればいいんだろう」という直観だけで書き進められるRubyのほうがツールとして使い勝手がいい。もちろん、Rubyでもカッチリ書こうと思えば書けるのだろうが、カッチリ書く必要がないところまでカッチリさせることはないというRubyのプラグマティックな寛容さが、私には心地いい。

 最終的に完成したRubyのスクリプトは今のところテキストエディタから呼び出している。5〜10秒待つだけで、統計データがごちゃごちゃと混じったURIリストがHTMLにパッと置き換わるのを見るのは気分がいい。もともと人間がやるべきではない単純な作業を自分に代わってPCがやってくれているのだと思うと、マウスカーソルの明滅も健気に見える。

 5分の作業を10秒に短縮するために1時間を費やすのは、効率の観点からいえば誤差のような話かもしれない。しかし、精神的な疲労は数字だけで計れるものではない。読者の業務で、マウスを酷使する非人間的な「頭脳労働」は存在していないだろうか。Rubyが役立ってくれるかもしれない。

(@IT 西村賢)

情報をお寄せください:

アイティメディアの提供サービス

キャリアアップ


- PR -
ソリューションFLASH

「ITmedia マーケティング」新着記事

高齢男性はレジ待ちが苦手、女性は待たないためにアプリを活用――アイリッジ調査
実店舗を持つ企業が「アプリでどのようなユーザー体験を提供すべきか」を考えるヒントが...

IASがブランドセーフティーの計測を拡張 誤報に関するレポートを追加
IASは、ブランドセーフティーと適合性の計測ソリューションを拡張し、誤報とともに広告が...

【Googleが公式見解を発表】中古ドメインを絶対に使ってはいけない理由とは?
Googleが中古ドメインの不正利用を禁止を公式に発表しました。その理由や今後の対応につ...