一応技術者の端くれですので、多少は技術的な話もしてみたり。
最近はWEB系の開発が増えてきて存在感が薄れてきましたが、マイクロソフトの.NETは良く出来ていると思います。特にC#はJAVAなどの「先行するオブジェクト指向言語のいいところだけをパクッた」という後出しじゃんけんなだけに、洗練されていると思います。
だが「VB.NET」、お前は駄目だ!
なぜVB.NETが駄目かって言うと、たくさん理由がありますが、私が決定的だと思うのは「大文字と小文字を区別しない」というところです。
昭和を生き抜いたIT技術者であれば、intCounterとか「この変数はint型ですよ」とプリフィックスを付けた時代があったのはご存知だと思います。これをハンガリアン記法と呼びます。ところがオブジェクト指向言語になってからは全てがオブジェクトで、全てがクラスですので、クラス名はすべてclsController、オブジェクト名はすべてobjControllerとかになってしまいます。実際にいまだハンガリアン記法で書いている人のソースをみるとclsとobjだらけです。
そうなると当然ながら無駄なわけですので、オブジェクト指向言語ではプリフィックスを付けないというのが世界中のコンセンサスとなっています。ちなみに.NETで言えばMSDNのコーディングルールにはっきりとハンガリアン記法で書くなと書いてあります。
ところがうちの会社のように閉鎖された環境で仕事をしている技術者はいまだプリフィックスを付け続け、意識高い系の人が後輩に「これが仕事でプログラムを組むということだ」といった感じでプリフィックスの付け方を物凄いドヤ顔で教えています。聞いていると呼吸困難になります。
そんな昭和な会社ですので、.NETの言語を選択する時も昭和から使い慣れているVB6の後継言語と勘違いしてVB.NETを選択します。私は長く外の仕事をしていてC#をメインとしてきましたが、たまに社内のVB.NETのソースを直したりします。
たとえばC#では「注文」というオブジェクトを作ると
Oder oder;
といった感じにしますよね。ところがVB.NETは大文字小文字を区別しないので
Dim oder As Oder
と書けません。そうなると「プリフィックス付ける昭和脳www」とか言ってる私でも悩みに悩んだ結果「ク、クラス名だけはプリフィックスつけようか、、、」と敗北感にまみれながら
Dim oder As clsOder
とか書いてしまうわけです。つまりVB.NETでは自然とハンガリアン記法へ誘導されてしまうのです。「大文字と小文字を区別しない」たったそれだけの仕様のために。
だからVB.NETは糞です。今すぐ死んで欲しい。でもC#は私が知っている限り最も完成した言語だと思います。
あと、切姫さんのこの悪そうな顔大好きです。私も命令したい。いやむしろ命令されたいです。
最弱無敗の神装機竜 第10話より