matarillo.com

The best days are ahead of us.

15 F# 、C# 、.NETの新しい黎明期:ついにオープンソース化&クロスプラットフォーム化!

2021-09-25 00:00:21

登場以来、F# は最も重要で、一見したところ克服できない課題に直面しました。 オープンソースソフトウェアが当たり前になり、プログラミング言語やランタイムの世界では.NET、F# 、およびC# が明らかな異常値となりました: 大部分がクローズドソース – あるいは少なくとも外部の貢献を受け入れていない – という理由です。

Microsoftには、オープンソースを採用することを提唱する人が多くいましたが、この問題は、.NETが登場したときから背景に潜んでいました。 2004年には、.NETの「シェアードソース」バージョンがリリースされました。 F# のソースは、初期のMSRリリースにも含まれていましたが、非商用ベースでした。 しかし、オープンソースはまだ物議を醸しており、いくつかの例では、プロジェクトはすぐに中止されることが決まっている場合だけオープンソース化されていました。 そのため、「オープンにする」ことは依然として危険であり、慎重に説明する必要がありました。

2010年11月11日に、MicrosoftはOSI認定ライセンス(Apache 2.0)の下でF# ソースの最初のリリースを行い、F# は今後より広く受け入れられるであろう変革の先駆者になりました[Syme 2010]。 さらに重要なことには、2014年4月3日にMicrosoftはF# への貢献を受け入れ始めました。 これもまた、完全なオープンエンジニアリングプロセスを採用する上で「先駆的」でした[Hoban 2014]。 マイクロソフトでは、Kevin RansomとLincoln Atkinsonが、オープンソース、オープンエンジニアリング、オープンデザインへの移行を可能にした重要なチームメンバーでした。 これに対応して、オープン設計へ向けた移動も可能になり、F# 4.0では、言語設計はオープンで透明なプロセスに移行しました1。 言語設計プロセスとRFCは、私、Phillip Carter(MicrosoftのF# のプログラムマネージャー)、そしてChet Huskの指導の下、FSSFを通じて運用されます。 オープン性への移行は他の効果ももたらしました: 2013年、NuGetパッケージマネージャーとnuget.orgパッケージリポジトリーが作成されたことで、.NETコミュニティはついにパッケージを提供するための現代的で効果的な方法を開発しました。 これ以前は、.NETコンポーネントのパッケージ化がうまくいかなかったことが、.NETとF# の両方の成長を妨げる大きな要因でした。

現在、Microsoftのほぼすべての言語およびクラウドツールはオープンソースであることが当たり前になっています。 この変化の主な要因は、Microsoftのクラウドプラットフォーム「Microsoft Azure」への注力が進み、パッケージソフトやツールの販売ではなく、サービスの販売に経済的基盤を置いていることにあります。 C#、.NET、F#のツールは、貢献を受け付けており、多くの貢献者がいます。 NuGetパッケージエコシステムは現在、12万以上のパッケージをホストし、これまで100億近くのパッケージがダウンロードされていて、世界で最も大きく包括的なエコシステムの一つになるほど急速に成長しています。 オープンソースの「Paket」クライアントは、F# 開発者がエコシステムにアクセスするための一般的な手段となっており[Forkmann 2019]、オープンソースのFAKEビルドスクリプトツール(ビルドスクリプトがF# で書かれる)は、プロジェクトコードのコア部分を書き換えることなく段階的に導入できるため、F# を採用する「ゲートウェイドラッグ」となっています[Forkmann and Dittrich 2019]。


インデックスへ戻る


  1. F# 言語設計 RFC, [FSSF Contributors 2019a]. ↩︎