最近、Visual Basic でちょこちょことプログラムを書いています。
システム管理をしていると、ログ処理などでスクリプトを書く機会がありますが、OSがUnix系なら、普通はShellを使い、Windowsなら Powershell を使います。
しかし、Visual Basic は初めて。
Visual Basic を使って、まず、戸惑ったことは、コメント行と、エスケープキャラクターの使い方。
まずは、コメント行。
Shell や Powershell なら、「#」 、Cなら、// や /* ですが、Visual Basic って、なんとシングルクォーテーション「’」。これには驚いた。
確かに、「’」を書くと、Visual Studio の中では行の色が変わり、それ以降がコメントになったことがわかります。
じゃあ、プログラム内にシングルクォーテーションを使いたい場合はどうするの?
続いてエスケープ文字。
Unix Shell や Powershell では、バックスラッシュ「\」ですけど、Visual Basic では、「”」ダブルクォーテーションでした。これにもび~くり。
Visual Basic でログなどの文字列処理をしようとすると、慣れるまでは大変そう。
例えば、「-H “X-Radiko-Device: pc”」というコマンドオプションを、一度変数に入れてコマンドに渡そうとする場合、-H から行末までをダブルクォートで囲って、Xの前の「”」をエスケープしないといけないので、
DIM a As String = "-H ""X-Radiko-Device: pc"""
と、書く必要があります。なんで、こんなにダブルクォートばかり書くんだ?!って。
ダブルクォーテーションやシングルクォーテーションは、文字列を多用するプログラム中で多用するので、文字や文字列の加工をするプログラムを書こうとすると、すごく見にくい。今書いている部分はクウォートの中、外?って迷ってしまいます。幸い、Visual Studio がシーンを判定して、色や表示を変えてくれるので気づけますが、他のエディターを使ったり、端末で直接書いたりしたら、恐らくわかりにくいでしょうね。最悪なのは、プログラムを書き終わった後のデバッグ時。自分が書いたプログラムでもこれだけクォートが多いと、何をしようとして書いたかがわかりにくくなるし、最悪なのは他人が書いたプログラムを理解するとき。そういうことが無いことを祈ります。
まあ、Visual Basicって、30年以上前からある言語ツールなので、仕様に文句を言っても仕方ない。MS Basicはパソコン黎明期に使っていますが、行番号、REM文 の時代ですからね。そこから、改造されていったんでしょう。
じゃあ、なぜ私は Visual Basicを選んだ?(笑)