2001年11月06日 火曜日

VBA

久しぶりに2年前に書いたVBAのソースを眺めた。プログラミングの世界では、「昨日の自分はもはや他人」なので、さすがぱっと読んだだけでは中身が良く分からなかったが、デバッガでトレースしていたらどういう処理をしてどう考えていたか思い出した。ということで所望の変更は行えたのであるが、問題はそれ以前にあって、やっぱりVBAのコードが好きになれない。というかBASICが好きではないんですな。
僕もBASICで育った世代で、最初に使ったプログラム言語は小学生のころでN66−BASICだし、そのあとはずいぶん飛んで大学時代の前半はN88-BASIC(86)でフラクタル図形を書いて遊んでいた。ただこの手の繰り返し計算モノでBASICを使うのはナンセンスなので、そこでC言語に切り替えてしまったクチであるが、その後もMSの術中にはまってQuick BasicだのVisual Basicだの表題のVBAなんかも使っているわけだ。構造化されたあとのDOSベースのQuick Basicはそこそこ出来た処理系だったと思うが、その後のものは悪ノリで作っているとしか思えないシロモノだ。そう思うのは、VBはWindowsのバージョンにかなり依存した言語設計になっているし、VBAはさらにOfficeのバージョンによってかなりコーディングの変更を強要するからだ。僕は1年やそこらで言語以外の要因で仕様がころころ変わる処理系に付き合いきれない。普通そうだろう。
と言うことで、最近は小物のものはRuby、遊びとXMLモノではJavaで遊んでいる。Emacsを使うためにLISPを使っていることも忘れていないが最近あまりコードを書いていない。LISPみたいな関数型の言語はコーディングの発想がぜんぜん違うのでなかなか取っ掛かり難いが、こう言うものをたまに使わないと人間として駄目になってしまいそうだ。そういえばEmacs Lispで遊んだことで、Mathematicaのマクロをすぐに使えるようになったことがある。Mathematicaのマクロは文法こそC-likeな言語であるが、基本的にはLISTをいじる事が多いので、LISPが分かると簡単にLISP風なプログラムがかけて強力に使いこなせる。面白い体験だった。やっぱいろいろな言語を使うことは重要だのう。