はじめに
これは、Visual Basic Advent Calendar 2020の1日目の記事となります。
この記事は私のQiitaでの200記事目になります。
2020年の出来事
良かったこと
今年は 2020年11月10日に「.NET 5」を正式リリースしました。これにより Visual Basicで「.NET 5」でサポートされるようになりました。
Microsoft Visual Studio Community 2019 Version 16.8.1 で確認するとプロジェクトテンプレートに「Windows Forms App(.NET)」があります。
Microsoftの「The Visual Basic Team」のブログでは、2020年3月11日に久しぶりに更新がありました。ただこれ以降の更新はありません。
https://devblogs.microsoft.com/vbteam/visual-basic-support-planned-for-net-5-0/
有志の踏ん張り
C# 9.0ではレコード型、パターン連結子('is not null' や 'is >= 10 and <= 20')が追加されています。
Visual Basicで「.NET 5.0 で使える C# 9.0の新機能」について調べてみた
Visual Basicの言語仕様に関する議論はここで行われています。
https://github.com/dotnet/vblang/issues
直近では、Visual Basicでレコード型を実装する試みがされています。
I hate C# records. Please don't ever bring them to VB!
悪かったこと
WPF対応
プロジェクトテンプレートに「WPF App (.NET)」がありませんでした。C#にはあるんですがね。
WPFのVBはサポート予定だったと思ったのですが、今回は間に合わなかったのか、サポート対象から外したかですね。
【2020/12/5追記】
この件については、@tfukumoriさんからコメントを頂いているので、コメントを見てください。
言語として進化は中止
Visual Basicを使用する主な利点の1つは、言語が非常に長い間安定していることです。Visual Basicを使用している多くのプログラマーは、その安定性と記述スタイルが重要であることを示しています。今後、Visual Basicを言語として進化させる予定はありません。
Visual Basic support planned for .NET 5.0
.NET 5.0以降もVisual Basicのサポートはされるのですが、Visual Basicの言語として進化はやめてしまうようです。
Visual Basic .NET 5 blog post #497
【.NET】Microsoft、Visual Basicの進化やめるってよ
自然言語処理NLSバージョンアップによる影響
Windows 10 バージョン 2004 で、OS の自然言語処理を担う NLS (National Language Support) バージョンが6.3に更新されたことにVisualBasicではStrConv関数などが影響を受けています。
【Visual Basic】Windows 10 ver 2004(20H1)/20H2以降の日本語固有不具合について
これにともない合字データ (㋿ や ㍻) のソート順も変更されていますので、VBにかかわらずC#でも影響はあります。
OS バージョン | 合字の昇順例 |
---|---|
1909 | ㋿ ㍻ ㍾ ㍼ |
2004 (20H1) / 20H2 | ㍾ ㍼ ㍻ ㋿ |
来年は30周年を迎える
2021年05月20日は、Visual Basicの30周年となります。
1991年にVB 1.0がリリースされました。ただ日本では発売されませんでした。
25周年の記事
https://devblogs.microsoft.com/dotnet/happy-25th-birthday-vb/
https://developers.srad.jp/story/16/05/21/1943233/
最後に
残念なのは.NETでも「今後、Visual Basicを言語として進化させる予定はありません。」って公式に宣言されたことです。
もっとも、VBAは二十数年近く何の改善もされなてないですから。でも、.NETの場合は有志の方が頑張れば、機能は追加できるんです。
来年は、Visual Basicの30周年ですし、.NET 6もリリースされるので、みなさん頑張りましょう。