1960 年生まれ,独身フリー・プログラマの生態とは? 日経ソフトウエアの人気連載「フリー・プログラマの華麗な生活」からより抜きの記事をお送りします。2001年上旬の連載開始当初から,2007年に至るまでの生活を振り返って,週2回のペースで公開していく予定です。プログラミングに興味がある人もない人も,フリー・プログラマを目指している人もそうでない人も,“華麗”とはほど遠い,フリー・プログラマの生活をちょっと覗いてみませんか。

 今回はプログラミング言語の「好き嫌い」の話だ。決して「良し悪し」ではないのでご了解のほど。さて,どこから始めようかな。

 C言語に初めて会ったのは20年ぐらい前だったろうか。大学の研究室にあるPDP-11(編集部注:米Digital Equipmentが1970年に最初のモデルを出した16ビット・ミニコン)上のUNIXや,計算機センターの汎用機でも触ったが,いちばんお世話になったのはCP/M-80で動作するBDS-Cコンパイラだった。当時Lispにはまっていた私は,C言語のリファレンス・マニュアルを初めて見たとき,なんて雑然としていて,美しくない構文ルールを持つ言語だろうと思ったものだ(実は今でもそう思っている)。

 ただ,C++はとても気に入っている。メモリーの割り当てとか解放とか,そういった瑣末(さまつ)なことをクラスにまかせっきりにできる。変数の宣言やプログラムの初期化ルーチンは必要になったところで書けばよい。こんな具合にコードを機能別に局所化できるため,保守がとても楽なのだ。例外処理の機能も好きだ。

 C++を学ぶにあたって私がお世話になったのは,意外に思われるかもしれないが米Microsoftである。私は学生時代にSmalltalkなどで遊んでオブジェクト指向プログラミングを習得したつもりでいたが,C++となると,やっぱり言語の壁というものがあった。そこで,Microsoft Visual C++のウィザードで作成したアプリケーションのスケルトンをデバッガで追いかけ,わからなくなるとリファレンス・マニュアルを調べる,ということを繰り返した。そうこうしているうちに,C++になじめるようになった。

 C,C++と続いたから次はJavaかな,と思われるかもしれないが,そうは行かない。実はJavaは,XML(Extensible Markup Language)とLDAP(Lightweight Directory Access Protocol)と並んで私の中では,「ちまたで騒がれている割に現場でお目にかかることがない技術」というブロックに収められている。幸か不幸か,これまでにJavaを使う仕事は来たことがないし,積極的に習得しようというほどの魅力は感じない。米Sun MicrosystemsのWebサイトにあがっている使用許諾契約を読んだだけでうんざりしてしまい,ダウンロードしようという気になれないということもある。

 Pascal系では,ALGOL60に慣れ親しんでいるし,Modula-2やAdaで遊んだこともある。先日,OracleとPL/SQLを使った仕事を受けた。PL/SQLと言えば,数年前,会社の指示でしぶしぶOracleの講習会を受けて5日間ほとんどいねむりし,最後の演習だけ済ませてさっさと家に帰っていたという情けない思い出しかなかった。はたして大丈夫だろうかと思ってリファレンス・マニュアルを見て安心した。AdaそっくりのPascal系言語であった。1週間でPL/SQLに違和感を感じなくなったのは,Pascal系言語のおかげだ。

最大の友人と,以前の恋人

 少し盛り上がってきたところで,私の「最強にして最大の友人」を紹介しよう。Perlに出会ったのは12年ほど前だ。最初は読みづらい構文ルールの,シェル・スクリプトもどきの変な奴と思っていた。何かと便利なのでちょっとした仕事では使っていたものの,大きな仕事に使うのはずっと避けてきた。

 ところが,である。経緯は省略するが,今年の初めに請け負った大きな仕事を,なぜか突然Apache+mod_perlでやろうと思い立った。CGIでPerlプログラムを呼び出すのに比べて,はるかに高い性能を出せるのがミソだ。Perlのリファレンス(C言語で言うポインタのようなもの)やモジュール化といった,コードがわかりにくくなりそうでこれまで避けてきた機能を全面的に使う,という「毒を食らわば皿まで」的な方針も自分で定めた。

 私はまず,CPAN(Comprehensive Perl Archive Network)のWebサイトから参考になりそうなコードをダウンロードしてソースを眺め,テスト・プログラムを書いては動作を検証した。前号にも書いたが,優れた人が書いたソースコードは最大の師匠である。その後,スクラップ&ビルドでコーディングした分を含めると,渾身のコードを5000行ぐらいは書いただろうか。その甲斐があって,ついにPerlで自分なりのコーディング・スタイルを確立できた。ここまで来れば,もう自分で書いたコードが読めなくなる心配はない。Perlで大きな仕事を請け負っても大丈夫だろう。

 現在はPerlにどっぷりの私だが,「Visual Basic(VB)命!」という期間も3年くらいあった。VB2からVB6のリリースあたりまでのことだ。当時,私の周りにはVB使いが多く,どんな複雑な機能や高度な技術でも,VBから使えるようにしておきさえすれば,みんながそれをガンガン使ってコーディングをしてくれた。自作DLLのリンク,Windows API/ActiveXコントロール/ActiveX EXEの活用,ASP(Active Server Pages)とのリンクなど,ひと通りのことはやってみたし,それらはすべて仕事に役立った。それがどっこい,独立したらVBの仕事は一つも来ない。まあ,これは対象が業務システムからインターネット・アプリケーションに移ったせいもあるだろうけど。

 最近,VBがVB .NETになって仕様が変わる,なんて話を聞くと,以前の恋人の噂を聞くような気持ちになる。もしも,当時よりいっそう魅力的になっていたら…。そのときにはまた口説いてみることにしようか。