投稿者 るきお  (社会人) 投稿日時 2020/5/30 12:07:35
元となっている、マクロソフトのブログはVisual Basicの.NET 5における対応の拡大をアナウンスするポジティブな内容と、将来のバージョンでは言語機能の追加を行わないかもしれないというネガティブな内容を含む二面的なものです。
https://devblogs.microsoft.com/vbteam/visual-basic-support-planned-for-net-5-0/

今までのフレームワークの機能とVBの機能の進化を例をいくつか振り返ってみると、下記のようなものがありました。

1.フレームワークに動的言語ランタイム追加 → VBは機能追加なし。(C#はdynamic追加)
2.フレームワークでタプル追加 → VBでタプルを記述可能になった
3.フレームワークで非同期機能強化 → VBにAsync, Await 追加
4.フレームワークで新スコープ → VBでPrivate Protected追加
(※そうとう端折っています…)

このうち、1・2はVBの言語機能が強化されなかったとしてもフレームワークの機能を利用することはできます。
3・4はVBの言語機能の追加がなければ、フレームワークの新機能の利用が不可能(または著しく困難)です。

VBチームのブログが言っていることは、VBの言語自体の進化は今後行わないので、今後、3・4のようなケースでは、VBからは新しい機能が利用できなくなるかもしれないということことだと思います。

1・2のようなケースでもマイクロソフトが積極的に対応してくれないとプロジェクトやファイルのテンプレートが提供されなくなるとしたら不便です。

以上がひとまずアナウンスされていることだと理解しています。
https://devblogs.microsoft.com/vbteam/visual-basic-support-planned-for-net-5-0/

その理由として、ブログで挙げられていることは、VBでは(C#と違って)言語の安定性が重要であるということです。
.NET Coreの登場で.NETの世界がLinuxなど非Windowsの世界に大きく広がりました。これに追従するために現在の.NET Core版のVBでは 言語機能として存在していた MsgBox が削除されるなど言語としての安定性が損なわれています。

言語としての安定性を損なって、新しい世界についていくか、言語としての安定性を維持して古い世界(Windows)に残るかという選択でC#は新しい道をさらに進んでいくけど、VBは古い世界にとどまるということだと思います。

とは言え、これはオブラートに包んだきれいな文言であり、要するにVBを切り捨てるつもりだと解釈する人が多く、上記ブログにもさまざまなコメントが寄せられています。この解釈はニュアンスがネガティブですが、正しいかもしれません。今のところ私にはわかりません。

原文は「may not be supported in Visual Basic」であり、書いている人にもわからないのかもしれません。しかし、その可能性があるというアナウンスを素直に受け止め、それが実際のこととなったとしても困らないような行動をするチャンスをこのブログは与えてくれているのだと思います。

これまでのVBは敷居が低く・初心者が入りやすく、しかも新しい機能も使えるすばらしい言語でした。.NET Coreの新しい世界でも、この路線を継続して欲しいところですが、実際のところ具体的にどうなるのかはマイクロソフトが今後具体的に何をやって何をやらないかでわかっていくと思いますので、まずは見守っていきたいです。それがはっきりわかるのは 2021年予定の .NET 6 ですね。