C#はVB.netよりも格上?言語にまつわる誤解/エンジニア

「VB.netはC#の下位互換である」という話を耳にしたことはありませんか?

確かにVB.netとC#は.Net Framework という共通の環境があり、言語としてもよく似ています。また、C#をマスターするエンジニアの多くが本格的なプログラミングを行っていたことも確かでしょう。しかしそれだけではVB.netが格下であるという証拠にはなりませんよね。

そこで今回はVB.netがなぜか格下に見られてしまう理由について考えてみました。

なぜか格下に見られるVB.net

冒頭でも述べたように、VB.netはC#に比べて軽視される傾向があります。

その理由としては、かつてマイクロソフト社はVB.netを廃止してC#一本にフォーカスしようと計画していたという背景があるのかもしれません。本来無くなるはずの言語だったのだから、C#のほうが優れていて当然だろうという論理です。

確かに一理あるような気がしますが、それでも現時点でVB.netは立派に生き残っており、実際の開発現場でも需要があります。

現代は一つの言語が圧倒的な勢力を誇る時代ではなく、むしろ戦国時代の様相を呈していると言えるでしょう。つまり顧客側に選択肢が多い時代ということになります。

その中の一つとして立派に需要が発生しているVB.netですから、C#より格下ということはありません。特に業務システムの分野では今後も需要があり続けるでしょう。

なぜか格下に見られるVB.net

VB.netが初心者向けと言われる理由は?

「VB.net」はアマチュアプログラマー向けだという物言いもよく耳にします。確かに一時期はそういう傾向があったかもしれませんが、現時点ではVB.netであろうがC#であろうが、扱う人の質に大きな差はないと考えて良いでしょう。

VB.net以前のVB6の時代、比較的初心者向け言語であったVB6と難解なCを比較して「初心者向け」という風潮が生まれたのかもしれませんが、現在のVB.netとC#にそれほど大きな違いはないのです。

強いて言えば、オブジェクト指向に対する知識があるかないかという点になりますが、これもVB.net自体が問題なのではなく、扱う人の認識の違いでしょう。

C#は確かに優れた言語ですが、VB.netと実質的な部分では大差がなく、言語自体を「初心者向け」と決めつけることはできないと言えます。

VB.netがC#に劣る部分はほぼない

前述したように、VB.netとC#に明確な機能の上下関係というものは殆どありません。せいぜい方法論の違いとでもいうべき点があるだけです。

よってこの二つの言語の優劣をつけるのは、単に個人的な好みの問題を語っているに過ぎないと言えるのではないでしょうか。

VB.netがC#に劣る部分はほぼない

「VB.netに未来がない」は大きな間違い

VB.netに未来がないと言われる理由は、オブジェクト指向への対応状況でしょう。

確かにC#やjavaなどに比べて、VB.netはオブジェクト指向満載のプログラミングとはいかないかもしれません。しかし全く対応していないわけではなく、VB.netであってもオブジェクト指向プログラミングは可能なのです。

ただし、オブジェクト指向という考え方を使わなくても、ある程度のものができてしまうという特徴があることは確か。これをもって未来がないと断じてしまうのはいささか早計であると言うべきではないでしょうか。

そもそも言語に優劣はない

最後に、これが最も大切なことですが、そもそも言語に優劣はないのです。

言語はそれぞれ独自の進化を遂げて洗練されていくものであり、方法論や考え方の違いはあっても絶対的な機能の優劣差は発生しにくいと考えられます。要は単なる「得手不得手」が、優劣として語られているに過ぎません。

どんな言語であっても、大切なのは言語を操るエンジニアのスキルです。状況に応じて柔軟に変化できるエンジニアであれば、言語の優劣を意識することは無いでしょう。

アサインナビ | assign navi(アサインナビ)

ページが見つかりません

指定されたURLのページは存在しません。
サイト更新などによってURLが変更になったか、URLが正しく入力されていない可能性があります。
ブラウザの再読込を行ってもこのページが表示される場合は、サイトマップまたはサイト内検索でお求めのページをお探しください。


日本最大級のITビジネスコミュニティ アサインナビ