はじめに
これは、Visual Basic Advent Calendar 2019の1日目の記事となります。
2019年の出来事
今年は 2019年4月2日 に「Visual Studio 2019」の正式版がリリースしました。これにより、「Visual Basic 2019」も同時リリースされたことになります。
これまでVisual Basicでは2003年からバージョンに年番号を付けていたのですが、リリースサイクルを短期化したのでC#同様に内部バージョンの「Visual Basic 16.0」というようになっていくことになります。
ただ、書籍などは以前とのからみで「Visual Basic 2019」というタイトルにしていくでしょう。
Microsoftの「The Visual Basic Team」のブログは残念ながら12/1時点で何も更新されていません。
https://devblogs.microsoft.com/vbteam/
Visual Basic 16.0 の新機能
Visual Basic 16.0 は、Visual Basic ランタイム (microsoft.visualbasic.dll) より多くの機能を .NET Core に多く提供することに重点を置いており、.NET Core に重点を置いた Visual Basic の最初のバージョンです。
https://docs.microsoft.com/ja-jp/dotnet/visual-basic/getting-started/whats-new#visual-basic-160
Visual Basic 16.0 以降では、コメントは、明示的な行継続の後と、スペースとその後にアンダースコアで始まる行のステートメント内でも使用できます。
Public Sub Main()
cmd.CommandText = ' Comment is allowed here without _
"SELECT * FROM Titles JOIN Publishers " _ ' This is a comment
& "ON Publishers.PubId = Titles.PubID " _
_ ' This is a comment on a line without code
& "WHERE Publishers.State = 'CA'"
End Sub
VB言語の将来に関するMicrosoftのGitHubは以下のページとなります。
Visual Basic 16.1 と 16.2 では C# との相互運用性の改善と新機能の追加がされる予定でしたが、12/1時点で何もリリースされていません。
.NET Core 3.0
NET Core 3.0 が 9月23日 にリリースされ、Windows Forms や WPF アプリケーションがサポートされました。
.NET Core 4 は Framework 4.X と紛らわしいから欠番にして、次は「5」
徐々に .NET Core に一本化して、名前も「.NET」に
.NET Framework は 4.8 を最後のバージョンにすると明言
2020年11月に .NET 5 、以降毎年6, 7, 8, ...
https://ufcpp.net/blog/2019/5/build2019/
BlazorとXamarin Formsはサポート対象外
Blazorとは
Blazor フレームワークは Microsoft が主導で開発しているオープンソースの SPA(Single Page Webアプリケーションフレームワーク)です。SPA として有名なものに、Electron があります。Electron はJavascript がベースですが、Blazor は ASP.NET Core(C#)を用いてブラウザ上(WebAssembly)で動作させています。
Blazor とは「Rust で WebAssembly」、「C/C++ で WebAssembly」のように直接 WebAssembly という技術ではなく、WebAssembly で書かれた.NETのインタプリタ(CLI)がブラウザで動作する技術となります。そのため処理性能は少し期待できませんが、開発の利便性のメリットは享受できます。
Blazorは、通常の.NETアセンブリを実行するWebAssemblyベースの.NETランタイムで実行されます。したがって、VBを.NET標準ライブラリにコンパイルできる場合、Blazorアプリで動作するはずです。コンポーネントレンダリングロジックの作成に使用されるRazor構文(.cshtml)はC#ベースであり、これを変更する予定はありませんが、アプリロジックの残りのすべてはVBで記述できます。
VBをサポートする予定はありますか?
ちなみに Electron として「Electron.NET」があり、これは Electron を.NETに移植したものではなく、ASP.NET Core と Electron を組み合わせたものです。これなら、ASP.NET Core としてVB.NET が使用できそうです。
Xamarin Forms
Xamarin Forms とは、iOS, Android などのモバイル、タブレット、およびデスクトップ アプリを構築する .NET 開発者に、完全にクロスプラットフォームな UI ツールキットです。Android の API を C# から呼び出せるようにした「Xamarin.Android」、同じく iOS の API を C# から呼び出せるようにした「Xamarin.iOS」があります。
Xamarin.Forms での Visual Basic の使用にはもちろん制限事項がありますが使用はできます。
最後に
ITエンジニア側では正直 Visual Basic.NET の将来性はまったくもって期待できませんが、非ITエンジニアなら Excel の VBA や WSH(VBScrip) としては、まだまだ活躍はするでしょう。
社会人でプログラムを学ぼうとしている人が増えてきています。その人達が学んだプログラムを活用できるとしたら、Excel の VBA ですね。
ここ数年は働き方改革という政府のワードで、RPA導入がもてはやされてきています。RPAツールを使わなくても、既存の Excel の VBA を使用して効率化って何年も前からやってきているはずですが、属人的から解放されつつ、人材の環境が整い始めているということですかね。