matarillo.com

The best days are ahead of us.

14 .NET、F# 、そしてクラウドおよびモバイルコンピューティングへの移行

2021-09-25 00:00:21

本稿の焦点は、F# の初期、特に2012年のF# 3.0までの歴史、および将来のF# 言語のすべてのバージョンのバックボーンを形成してきた革新的な機能のコアセットにあります。 本稿の残りの部分では、2012年以降の最新の歴史について説明しますが、詳細については少し割愛し、 特に、初期の歴史の中でも登場していましたが、その後大きな変化が起こったテーマに焦点を当てます。

F# 3.0の期間中、MicrosoftでF# 、C# 、および.NETのすべてが順風満帆だったわけではありません。 これは主に、モバイルコンピューティングとクラウドコンピューティングの台頭に伴う、産業界の地殻変動によるものでした。 iPhoneは2007年に発売され、業界に大きな変化をもたらしました。 2011年頃、.NETはMicrosoft内部で深刻な困難に突き当たりました。 Windows 8に向けて、Windowsチームは、「コンシューマーアプリ」のモデルがiPhoneおよびiPadで非常に成功していることを踏まえて、プログラミング性を再評価する必要がありました。 その一環として、WindowsチームはHTML5とJavaScriptをWindowsプログラミングの第一級言語として採用することを決定し、 Windows 8は最終的に「Windowsストア」アプリの主要なプログラミング言語としてC# 、JavaScriptおよびC++ をサポートしました。 このことを.NETからの「後退」と見た外部観察者が多くいました。とはいえ、Windowsストアアプリ開発で最も人気のある言語はC# だったわけですが。 この認識は、.NETのブラウザーでホストされるバージョンであるSilverlightの開発が中止されたときに強化されました。 さらに、iPhone、iPad、およびAndroidからの脅威を受けて、Windowsチームは企業ではなくコンシューマーアプリケーションに焦点を当てたいと考えました。

MicrosoftのF# にとって、これは一連の困難な問題を引き起こしました。 エンタープライズ部門が「プラットフォームの乗り越え」を通じて企業利益の最大95%を維持しているにもかかわらず、 エンタープライズ向けプログラミングが企業戦略にとって重要ではなくなった当時、 同社の製品範囲内でF# は「エンタープライズ向け関数型プログラミング」として位置づけられていました。 政治的な理由から、強力なWindowsチームに対してDevDivは、F# をアプリケーションプログラミングの選択肢としてプッシュできる気がしていませんでした。 幸いなことに、F# はDevDivから引き続き良いサポートを受けていました。 リソースの削減が発生し、大きなプレッシャーがかかる一方で、チームにはF# 3.0機能セットを高品質で提供するためのリソースが与えられ、その後F# 3.1などが提供されました。 Kevin Ransomが2013年2月にチームに参加し、Visual F#チームに深い経験をもたらしました。.NETとVisual Studioに立ち上げ時から携わってきたからです。 他のチームメンバーは、Wonseok ChaeとVlad Matveev(開発)、Layla Driscoll(PM)、Lincoln Atkinson(QA)、Gordon Hogenson(ドキュメント)で、チームは2013年中にF# 3.1と複数回のアップデートを出荷しました。 しかしながら、コンピューティング環境の中で物事が間違いなく変化し、Microsoftの多くのプロジェクトが影響を受けました。 AppleがiPhoneで成功したことから、Microsoftの複数のチームに圧力がかかるという因果関係もありました。

幸いなことにこの頃、Microsoftの大きな構造的変化が、Azureクラウドプラットフォームの開発と共に起こりました。 Azureはもともと2010年にリリースされましたが、2012年から成熟を達成し、商業的成功を高めました。 Amazon Web ServicesやGoogle Cloud Platformなどのプラットフォームでも、サーバー側のコモディティコンピューティングへの移行が起こりました。 クラウドのプログラミング性は、高級言語と関数型プログラミングの両方に非常に適しており、 2012年から、F# の将来にとってAzureとクラウドコンピューティングが重要な部分であることが明らかになりました。 同じことが.NETにもより一般的に適用され、Azureは.NET、C# 、およびF# の技術的戦略にますます影響を与えるようになりました。 Azureは、プログラミング言語、SDK、およびAzureへのアクセスに使用されるツールでオープンソースを完全に採用したため、Microsoftにも大きな変化をもたらしました。 現時点で、MicrosoftはAzure内でのLinux利用も全面的に受け入れています – 10年前には考えられなかったことです。 Microsoftは現在Linuxを「愛して」おり、そしてそれは成長ビジネスの1つの中心的な部分を形成しました。

この期間に、アテネのコンサルタント会社Nessosは、F# を用いてMBraceという名の非常に革新的なクラウドプログラミングシステムを開発しました[Dzik et al. 2013]。 もともとは分散プログラミングシステムと考えられていましたが、その後の発展ではクラウドコンピューティングとビッグデータ処理が強調されました。 Microsoft社内では、F# がクラウドコンピューティングに適していることを示すために使われました。


インデックスへ戻る