全文検索エンジン Namazu の開発者などで有名な高林 哲さん(こないだの
LL Saturday にも来られていました。) が何年か前に公開された 'UNIXにみる世代間の断絶' という面白い文書があります。
(まだまだ調査中) UNIXにみる世代間の断絶をまとめようという試みです。どちらが良い悪いという比較をするつもりはありません。両者の良い点を学んでいこう (新旧自在の hybrid type を目指そう) 、というのがこの文書の目的です。
ということで、UNIX な人でどのツールを使ってるかで oldtype と newtype とに分けてみましたというもの。
今日 RSS のキーワード分析を作ってくれた後輩の D 君と LL Saturday のことについて話していて、この文書の話題になりました。今年社会人一年目の D 君は Ruby を得意としていて学生の頃から Ruby のライブラリを作って commit したりしているらしい、いわゆる newtype。
一方の僕は Perl がプライマリの言語で、Ruby もかじってみたことがあるけどなかなか Perl から離れられない oldtype。とはいえ、エディタは Emacs 21 で Java もときどき使うしデスクトップは GNOME だったり既存のライブラリを使って楽しようとしたりと、Perl がプライマリという点を除けばおそらく newtype に属すると思われる。(いや、newtype に属したいというのが本音か?)
Perl 使いの僕と、Ruby 使いの D 君とで、なんか同じ処理をするプログラムでも、Perl で書くより Ruby で書いた方が今っぽいねみたいな話をしていました。(こんなこと書いたら Perl な人から激しく怒られそうだけど..)
そんな話をしていて二人が注目したのは "リソースの使い方" のところに見られる "貧乏" と "富豪" のところ。この "貧乏" や "富豪" というのは増井俊之さんの '富豪的プログラミング' から来ているものなわけですが、僕と D 君に共通の意見というのは、「僕らは富豪でいたくて富豪的プログラミングをしているわけではなく、富豪でいることしか知らない」という話でした。敢えてリソースを贅沢に使って実現したいことを手軽に実現しているというよりは、リソースを抑える技術やプログラムをコンパクトにまとめる技術を知らないという。
特にスクリプト言語育ち、最近では Java もなんていう僕はまともにその類の勉強をしたことがないこともあって、メモリを豪快に食いまくるプログラムコレクションが豊富にあったりするという駄目ちん君。そのとき CPU がどう動いていて、メモリの割り当てと開放がどう行われているかというのをあまり気にせず、インタプリタや VM、GC にすべてお任せな御気楽プログラミングばかりしているうちに、気付いたらこんな体質になってしまいました。体たらく体質改善はなかなか難航しそうです。