ゆなこんブログ

ゆなこんぴゅーたー (Yuna Computer) の公式ブログ

Visual Basic.NETの今後

f:id:y121516:20181222205559p:plain
Visual Basic

Visual Basic.NET と .NET Core 3.0

ひと月ほど前ですが、Visual Baisc チームブログの記事で、現在開発がすすめられている .NET Core 3.0 が Visual Basic.NET にどのように影響するかについて説明されました。 この記事から、VB.NET の未来について知ることができます。

Visual Basic in .NET Core 3.0 | The Visual Basic Team

この記事の内容を意訳しつつ、Visual Basic.NET の今後について説明したいと思います。 なお今日現在、Visual Studio 2017 に含められている Visual Basic 15.5 が最新バージョンです。 Visual Studio 2019 に含められる Visual Basic 16 が将来のバージョンとなります。

Visual Basic.NET の今後

Visual Basic は、他の言語と同じように .NET Framework でも引き続きサポートされるので、既存のアプリケーションを修正する必要はありません。 .NET Framework アプリケーションを 今すぐ .NET Core に移植する必要はないと思われます。

.NET Core 3 によって生じる Visual Basic への影響

.NET Core 3 の開発によって Visual Basic はどのように影響されるか説明されています。

  • Visual Basic.NET は現在 .NET Core 上でコンパイル・実行されていて今後もそうされます。
  • 使い慣れている Visual Basic ランタイムの全てはまだ .NET Core に含められていません。しかし .NET Core 3.0 には含められる予定です。
  • Visual Basic 16.0 は C# 8.0 公開時に、同時に公開する予定です。
  • Visual Basic 16.1 と 16.2 では C# との相互運用性の改善と新機能の追加がされる予定です。

.NET Core での Visual Basic.NET ランタイム

VB では主に Windows デスクトップアプリケーションの開発がされているようです。 Windows デスクトップアプリケーションとは「Windows フォーム (Windows Forms, WinForms)」と 「WPF (Windows Presentation Foundation)」アプリケーションのことです。

そのため、 .NET Core 3 では VB のデスクトップ開発に力が入れられるようです。

VB は VB ランタイムによって特別な存在になっています。 .NET Core 2 までは VB ランタイムは一部しか含まれていませんでした。 .NET Core 3 には VB ランタイムが含められる予定です。 おなじみの MidMy 名前空間などが2番目以降の preview 版で使えるようになる計画です。

Visual Basic と C# の相互運用

大抵の開発者は C# と Visual Basic を行ったり来たりしていて、組み合わせて使っているようです。 そこで Visual Basic 16.1 では C# 8.0 との相互運用性を向上させる新機能が追加される予定です。

C# 8.0 でデフォルトのインターフェース実装 (default interface implementations) がサポートされるならば、Visual Basic でもそれをサポートする予定です。

Visual Basic.NETの機能と将来

.NET Core のすべての API が Visual Basic から利用できるわけではありません。

とはいえ、パターンマッチング (pattern matching) など Visual Basic 16.2 での導入が検討中の機能もいくつかあります。

最近は C# が機能強化される一方 VB はほぼ何も変わっていない状況でしたので、新機能の追加が楽しみです。 私は過去に「.NET Core には VB ランタイムが実装されることはないだろう」と予想していましたが、実装される予定みたいで本当にびっくりです。