日記
Visual Basicがすたれていく from ZDNet (13:49)Edit

個人的にVB.NETの方がC#よりも好きなんで、VB.NETの利点・欠点を並べつつ宣伝しておこう。

VB.NETは、VBと名乗っていてVB文法とか昔のVB関数とかが使えるけれども、実際にはとてもちゃんとしたオブジェクト指向言語として作り直されている。もしも、VB.NET以前のオブジェクト指向サポート版VBを使ったことがあり、「あんな腐れオブジェクト指向もどき言語なんか使ってられるか!」と思っている人(過去の俺も含む)は、VB.NETはそれらとは別物であると認識し直して欲しい。とてもちゃんとしたオブジェクト指向言語に生まれ変わっている。C#がJavaを参考に新規に(後発で)作り直された洗練された言語であり、VB.NETはC#の記述力(言語仕様)をほぼそのままVB文法上に再現した言語だと考えると、その言語仕様の洗練度合いが想像できると思う。大元の言語仕様設計者はDelphi(Object Pascal)の人だし。

ただし、VB.NETはあくまでもC#が先にあって、それをがんばってVB文法に移植したものなので(多分)、C#と比べるとちょっとだけ劣る。C#で実現されている言語仕様のほとんどはそのまま使えるように移植されているんだけど、ごくわずかC#では使えるけれどもVB.NETでは使えない要素があったり、あるいは使えるけれども使い方が面倒くさかったり、あるいはC#ではちゃんと動くのにVB.NETではバグっている部分があったりする。でもまあそれは本当にごく一部でよほど運が悪くない限りはそういう要素に行き当たることはないだろう。

C#はJavaに似すぎている。そのため、Javaも使わなければならない人は、混同してしまう可能性がある。VB.NETの場合は言語仕様は似ているものの記述スタイルは全然違うので、混同してしまう可能性は少ない。というのは別の言い方をすれば、C#はJavaに似ているのでほとんど同じ知識を流用できる、ともなるけれども、俺の場合は違っていることの利点の方が大きい。でもまあ普通の人にとっては、似ていることの利点の方が大きいかな。

VB.NETはC#と比べると言語仕様的にコード量が少なく記述できるようになっている部分が多い。というのは、Visual Studio .NETの助けを借りることが前提なのだが、改行によって1命令が分離される言語スタイル+Visual Studioの入力支援によって、非常に多くの場合C#よりも少ない打鍵数でコードが入力できる。これには、VB.NETが大文字小文字を区別しない(ケースインセンシティブ)ことも貢献しているだろう。VB.NETでは、かなりアバウトにコードの一部を記述するだけで、その後に続くコードを自動補完できる。ただし、Visual Studioを使わずに入力した場合は、ブロック構造を中括弧で済むC#と、IF〜END IFのようなVB.NETでは結構差が出そうだ。Visual Studioを使えばその手のコードはすべて全自動で入力されるのだけど。

と並べてみたけれども、読み返してみると自分でもC#とVB.NETを比べて特にVB.NETを選択する意義があんまり感じられない文章だなー。俺の場合、もともとはC#を使いたかったんだけど、仕事でVB.NETを使わなければならなくなったんで、しょうがなくVB.NETを使い続けているうちに、C#と両刀遣いする気力がなくなった(VB.NETで書いてうまく動かなかったコードを、試しにC#で書き直して動作確認したりする程度)のに、後付けで理由をつけている感じだからなー。でも個人的には今後もVB.NETを使うつもり(私物としても買っちゃったし)なんで、廃れないで欲しいなー。

Published At2003-05-07 00:00Updated At2003-05-07 00:00