Visual Basicは、新しい.NETに登場する奇妙な人物です。

先週の一連のブログ投稿で、Microsoftは.NET言語の開発方法に対する根本的な変更について詳しく説明しました。C#およびF#開発者にとっては朗報でしたが、Microsoftは変更がVisual Basicにとって何を意味するのかについて前向きな姿勢を示しましたが、由緒ある言語の長期的な将来はそれほど確実ではないようです。

MicrosoftのVisualBasicは、長い間、世界で最も人気のある言語の1つであり、確かに最も広く使用されている言語の1つであり、Microsoftをエンタープライズステージの中心に据えています。クライアントサーバーアプリケーション開発用の言語としての最初の6回の反復から、.NETプラットフォームの一部としての復活まで、VisualBasicはエンタープライズアプリケーションの迅速な開発のための頼りになるツールでした。これは、ユーザーインターフェイスコンポーネントの膨大なライブラリに加えて、一般的なデータベースへのコネクタと、サードパーティが追加機能の提供でビジネスを構築できるようにするコンポーネントモデルが原因の1つです。

Microsoftの開発戦略の基盤としての.NETへの切り替えは、C#などの新しい言語では理にかなっていますが、これはVisual Basicへの変更を意味し、コードを古いVisualBasicから新しいVB.NETに簡単に移行できませんでした。

これは開発者にとって困難な移行であり、VisualBasicはエンタープライズ開発内およびMicrosoft内でのマインドシェアを失い始めました。それでも、MicrosoftはC#とVB.NETの同期を維持することを約束しました。C#用に作成された機能は、2つの言語が一緒に開発されるVisualBasicの一部になります。その理由は、それらが同じタスクに使用されることが多く、基本的な性質が同じであるためです。どちらも、同じツールで動作する、強く型付けされたオブジェクト指向言語です。

Visual BasicとC#:新しい分岐が来ています

先週の発表で、その共進化はなくなりました。Microsoftは、間もなくリリースされるVisual Basic 15から始めて、2つの言語を異なる方法で使用できるようにします。

それは驚くべき離婚ではありません。C#の人気は飛躍的に高まり、Visual Basicはゆっくりとチャートを滑り落ち、StackOverflowのような人気のあるプログラミングクエリサイトのレーダーからほとんど姿を消しました。ユースケースも変化しています。VisualBasicは依然として元のクライアントサーバーパラダイムに焦点を合わせていますが、C#はクラウドおよびオンプレミスで動作するn層のWebベースアプリケーションのツールになっています。Webやクラウドで動作するように構築されたアプリが増えるにつれ、C#が多くのプロジェクトの最初の選択肢になりつつあるのは当然のことです。

言語の開発方法にも変更があります。C#はオープンデザインモデルに移行しました。つまり、アクティブなメーリングリストと公開されているGitHubリポジトリのおかげで、ユーザーは新機能を優先するための運転席にいます。マイクロソフトはすでに社外から新機能を取り入れています。これは、研究グループと社内の製品管理チームに焦点を当てていた従来の言語エンジニアリングプロセスからの大きな変化です。

Visual Basicにもオープンデザインモデルがありますが、C#とは優先順位が異なります。Visual Studio 2017のリリース候補の一部として、現在のビルドでC#の機能のサブセットをすでにサポートしています。

C#は引き続きVisual Basicから分岐しているため、2つの言語は別々に開発されますが、連携できるはずです。どちらも同じ.NETAPIに対応する必要があり、どちらもVisualStudioツールの一部になります。

これらの変更がエンタープライズ開発者にとって何を意味するか

現時点では、企業がこの来るべき相違について行うことはほとんどありません。

しかし、将来的には、Visual Basicでのクロスプラットフォーム作業の余地が確実にあります。これは、使い慣れた.NETFrameworkとともに基本クラスライブラリの.NETStandardセットのサポートに移行するためです。一部のコードは移植可能ですが、すべてのVisualBasicコードがライブラリの1つのセットから別の小さなセットにジャンプできるわけではありません。既存のコードは、純粋にWindowsに残り、純粋にオンプレミスアプリケーションに残る可能性があります。

開発者は、.NETStandardを介してVisualBasicコードを新しいプラットフォームに導入するか、より幅広いターゲットフレームワークとデバイスを提供するC#などの言語に移行するかを選択する必要があります。

.NET Standardはすべての.NETプラットフォームを対象としているため、重要なイコライザーです。ただし、すべての.NET言語に必要なわけではありません。Visual Basicは、完全な.NET Frameworkを備えていないシステムで必要になりますが、C#は、APIにアクセスして.NETCoreなどのプラットフォームに直接アドレス指定できます。これにより、UnityなどのC#派生物が独自の特殊なAPIをサポートしやすくなります。

Windows上の.NETFrameworkとオープンソースの.NETCore(Nano Server上およびコンテナー内で実行)をサポートするC#は、クラウドおよびモバイルアプリケーションの最初の選択肢となり、F#関数型プログラミングモデルは金融サービスに最適です。機械学習に依存するアプリケーション。

これらの変更の明確な推進力の1つは、MicrosoftによるXamarinの買収です。Microsoftは、幅広いモバイルデバイスをサポートするためのクロスプラットフォームのツールセットを必要としており、WindowsMo​​bileは期待どおりに企業の市場シェアを獲得できていません。英国のようなWindowsMo​​bileに適した地域でも、iOSとAndroidを合わせると市場の80%以上を占めています。アプリケーション用のモバイルフロントエンドを構築したいMicrosoft開発者は、Xamarinなどのツールを使用して主要なモバイルプラットフォームをターゲットにする必要があります。

XamarinがC#に焦点を合わせているため、Microsoftは、C#が今後のファーストクラスの.NET言語であることを明確にする必要があります。これはMicrosoftの最近の言語発表では明示されていませんが、強く暗示されています。

エンタープライズ言語戦略をどのように管理する必要があるか

これはVisualBasicに別れを告げるわけではありませんが、自分がどこにいて、どこになりたいかを検討するときが来ました。既存のVisualBasicアプリケーションは引き続き開発できますが、基盤となる.NETプラットフォームが進化するにつれて、VisualBasic開発者が利用できるのは.NETAPIのサブセットのみであると期待する必要があります。短期的には問題になることはないでしょうが、特にアプリケーションのモバイルまたはクロスプラットフォームのユーザーエクスペリエンスを計画している場合は、C#またはF#への長期的な移行に備える必要があります。

技術的負債のオーバーハングを回避するための最良のオプションは、C#を新しい開発の優先事項にすることであることは明らかです。C#には、ファーストクラスのサポートとユーザー主導の設計モデルがあります。また、Microsoftのクロスプラットフォーム開発とそのユニバーサルWindowsプラットフォームの中心でもあります。つまり、ビジネスロジックを一度作成してから、Web、Windows 10、iOS、Android、およびMacOSにカスタムユーザーエクスペリエンスを提供できます。また、開発者が最初のトレーニング後に新しい機能を習得して、比較的簡単に移行できるようにするための十分な言語の共通性もあります。