より良いエンジニアを目指して

1日1つ。良くなる!上手くなる!

VBとVB.NETの未来について考えたこと・感じたこと

仕事で、VB.NETに触れることになりました。

やってみると、C#での当たり前が通じず、なかなか苦労します。

触れてみて思うのは Visual Basicはどうなっていくのだろうと思い、「VB.NET future」などとGoogle検索をしてみたりもしてしました。

C#VB.NETという.NETファミリーは?

F#は関数型言語という独自の立ち位置がありますが、C#VB.NETについては似て非なるもので、立ち位置が曖昧です。

二つの言語を保守し続けることはマイクロソフトにとってどうなのかと思ったりします。

www.infoq.com

2009年の記事ですが、VB.NETC#は特徴の異なる言語だ。だが、ユーザーは互いの言語の機能を必要とする、と

特徴の異なる言語というのは確かです。私は一つの言語仕様とC#ライクにVBライクに表現できるように互いの言語が実装されていると最近まで勝手に思ってました。

完全にまでとは言わないもののVB.NETC#に変換するようなツールもあれば、サイトによってはVB.NETで書いた時とC#で書いた時の両方が掲載されています。

ですが、特徴の異なる言語なので、C#の感覚でVB.NETを書いたところで、細かい点ではそうも行かないのです。

The .NET Language Strategy | .NET Blog

上記のサイトはMSDNでのC#VB.NETとF#の言語のスタンスが語られています。ただ、スローガンのような精神性を語っており、ここからは言語の特徴を見出すのは難しいです。

www.c-sharpcorner.com

上記のサイトではIndeedなどの求人サイトでの言語ごとの案件数の比較をしています。VB.NETC#の1/5程度といったところでしょうか。

C#erからすれば、C#に一本化したらいいんじゃないの? なんて極論も思い浮かんで来ます。

なくならない

社内システムの保守・不具合対応をしていた頃は、職場の制約があり自由にソフトウェアはダウンロードは出来ませんでした。

Visual Studioなど持ってのほかで、何かしらのツールを作ろうならば、Notesで作るか、Excel VBAを駆使して作るかです。

Excel VBAで差分表示ツールを作成している方がおり、これにはびっくりしました。

Excel VBAVisual Basicです。そういったシーンのVisual Basicもなくてはならないものです。

そう、「なくならない」と言うこと。

マイクロソフトのイベントにて質問に答える井上章さんが

VB6動きますよね?

と言っていたのを思い出します。

システムというのは人が考える以上に使い続ける。それだけに、そのメンテナンスを行う人が必要になる。

COBOLのような言語もそうだと思います。

古い仕組みを使い続けないで、新しく作り変えろよということなのですが、これもなかなか難しいです。

よって、システム開発については「技術的負債」は常につきまとう問題であり、いかに解消するかも常に考えなければならないテーマなのだと思います。

噂の域を出ませんが、とある会社は、安く受注して、延々と保守費で稼ぐという笑えない商売をしているも聞いたことがあります。

いざ作り変えるにも仕様書は存在しないか古すぎて使い物にならず、ソースが仕様状態。

古いソースを見ながら、進めるしかありません。

そういうバッドケースにならないようにするには、古くなってしまう前に一部でも良い状態に持っていく継続的な解消が必要なのかなと思います。