matarillo.com

The best days are ahead of us.

18 .NET Core:MicrosoftがC# 、F# 、.NETをクロスプラットフォームに

2021-09-25 00:00:21

.NETに対するクロスプラットフォームサポートの問題は最初から存在していました:2004年のRotorシェアードソースリリースもクロスプラットフォームでした。 2001年、Miguel de IcazaらによってMonoプロジェクトが開始され[de Icaza 2016]、.NETの完全にオープンソースでクロスプラットフォームなバージョンが実装されました。 F# は2006年以来Mono上で快適に動作しました。

2016年に、Microsoftは.NET Coreという、完全にオープンソースでクロスプラットフォームな.NET実装をリリースしました。 2017年からは、F# のサポートは.NET Core SDKに直接含まれており、標準のLinuxパッケージにも含まれています。 v2.0がリリースされたことで、.NET Coreはますます成功を収めており、F# をLinuxおよびDockerで使うことは現在コミュニティ内で主流になっています。 AmazonやGoogleなどのクラウドプロバイダーは現在、.NET Coreを通じてF# をサポートしています。 これは、Azure Functions、Amazon Lambda、Google Cloud Platformなどのクラウドにホストされるサービスでの.NETサポートのバックボーンを形成しています。

.NET Core SDKに直接F# を含めることは、この言語の歴史において最も重要な長期的イベントの1つです: いまやF# は、.NET Core SDKがインストールされているすべての場所で、シンプルで一貫性のある方法で完全にサポートされますし、 オープンソースコミュニティと主要な商業的関心の両方から完全に支援されます。 さらに、.NET Coreにより、そのプログラミングフレームワークは、Windowsエコシステム内での後方互換性に伴う非常に厳格な制約がいくつか取り除かれ、 ランタイムレイヤーへ迅速に新機能を導入することが可能になりました。 .NET Coreでは、サイドバイサイド(局所的で干渉しあわない)インストールが可能であり、ランタイムの変更は同じマシン上の既存のアプリケーションには影響しません。 これにより、ランタイムとその言語が共に進化できます(もともとF# に影響を与えたOCamlの、長所の1つでありつづける特徴です)。 これは、C# とF# の設計にすでに影響を与えています。 C# 7.2とF# 4.5の “Span” 機能(文字列のようなデータの内部的な部分範囲への安全なスタック上参照を可能にする)には、ランタイム要素と言語要素の両方が含まれています。


インデックスへ戻る