マイクロソフト、次の.NET 7にネイティブコンパイラを搭載する見通しを明らかに

今回は「マイクロソフト、次の.NET 7にネイティブコンパイラを搭載する見通しを明らかに」についてご紹介します。

関連ワード (最初、登場、連携等) についても参考にしながら、ぜひ本記事について議論していってくださいね。

本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。


マイクロソフトは現在開発中のフレームワーク「.NET 7」で、ソースコードからターゲットプラットフォームに対応したネイティブバイナリをコンパイル時に生成するAOT(Ahead of Time)コンパイラを搭載する見通しだと、「Announcing .NET 7 Preview 3」で明らかにしています。

fig

AOTコンパイラ、すなわち事前コンパイラとは、アプリケーションのビルド時にソースコードをコンパイルしてネイティブバイナリを生成する機能を備えています。

一般に「コンパイラ」とはこのAOTコンパイラのことを指すことが多いですが、アプリケーション実行時にソースコードや中間コードから動的にネイティブバイナリを生成するコンパイラのことをJIT(Just-in-Time)コンパイラと呼ぶのに対比して、あえて「AOTコンパイラ」と呼ぶことも最近では増えてきました。

現在、.NET対応のプログラミング言語であるC#などのソースコードは、基本的にはコンパイル時に.NET専用の中間言語に変換され、実行時に.NETランタイムによって動的にネイティブバイナリが生成されることでターゲットマシン上で実行できるようになっています。

こうしたJITコンパイラや中間言語用仮想マシンの仕組みは、Javaなどを含む主要なプログラミング言語の多くで採用されているアプローチの1つとして、ソフトウェアのポータビリティと同時に高い性能や安定性などを実現してきました。

クラウドネイティブではネイティブバイナリのニーズが高まる

一方で、最近のクラウドネイティブ的なアプリケーションでは、サービスとして多数のソフトウェアを分散環境で実行し、相互に連携させつつ、負荷などに応じて頻繁にソフトウェアの起動と終了を繰り返す仕組みとなっています。

こうしたソフトウェア構成では、より効率的なコンピューティングリソースの利用を実現する上で、徹底的な高速起動と小さなランタイムが求められます。

そして、より小さなランタイムと高速な起動を実現するもっとも優れた方法として考えられるのが、あらかじめ生成されたネイティブバイナリを実行することです。

Javaも事前コンパイルによってネイティブバイナリを生成するソリューションが登場しつつありますし、コンパイラを標準的に採用するGoやRustといった言語への注目も高まってきています。

今回マイクロソフトが.NET 7で開発中のAOTコンパイラも、コンパイル時にネイティブバイナリを生成する機能を実現します。

最初はコンソール向けアプリとライブラリの開発がターゲット

.NETには以前からReadyToRunなどの仕組みのために事前コンパイルをする仕組みを一部に備えていましたが、今回開発中のAOTコンパイラはネイティブバイナリのみを生成する、いわゆる通常のコンパイラとして働きます。

ただし.NET 7で最初に搭載されるAOTコンパイラは、まずはGUIを持たないコンソール向けのアプリケーションとネイティブライブラリの開発がターゲットになると説明されています。

そしてAOTコンパイラは今後、.NETの数バージョンを経てさまざまなアプリケーションに対応する互換性を広げていくとのことです。下記は「Announcing .NET 7 Preview 3」からの引用です。

Looking ahead, Native AOT compatibility will be improved over the next few versions of .NET, however there will always be reasons to prefer JIT for many scenarios. We will also add first-class support in the dotnet SDK for publishing projects with Native AOT.

今後、Native AOTコンパイラの互換性は.NETの次の数バージョンで改善されていきますが、一方で多くのシナリオにおいてはJITが好ましい理由もあることでしょう。ネイティブAOTコンパイラを使用したプロジェクトの公開に向けて、.NET SDKにもファーストクラスのサポートを追加する予定です。

.NET 7の正式リリースは今年(2022年)の11月に予定されています。

COMMENTS


Recommended

TITLE
CATEGORY
DATE
「Bing」のAIチャット、回答にマルウェアサイトへのリンクが含まれる恐れ
IT関連
2023-10-03 09:59
バイデン氏がビッグテックの「悪質な合併」阻止目指す大統領令に署名、過去のM&Aにも異議の可能性
パブリック / ダイバーシティ
2021-07-13 19:45
「iOS 16」にあれば便利と思える機能を考える
IT関連
2022-04-17 14:44
自然言語でアプリ開発が可能になる「Copilot in Power Apps」発表/「GitHub Copilot X」はGPT-4ベースで大幅強化ほか、2023年3月の人気記事
編集後記
2023-04-07 23:34
ZoomのCEO、週2日以上の出社を求める–全社会議で理由を説明
IT関連
2023-08-29 18:38
ロシア、YouTubeに「反ロシア」広告を止めるよう警告
IT関連
2022-03-20 18:48
「フォートナイト」のゲームプレイがHousepartyを通じて友人たちに配信可能に
ゲーム / eSports
2021-04-07 18:06
Clubhouse、ようやくAndroid版(β)をまずは米国で公開
アプリ・Web
2021-05-11 09:01
Sansan、インボイス管理サービス「Bill One」で「発注データ照合オプション」提供
IT関連
2023-07-25 17:02
FiskerとフォックスコンのEVパートナーシップは「予想よりも速く進んでいる」とFiskerのCEOが表明
モビリティ
2021-08-07 16:48
NVIDIAのGPUを使って生細胞の3Dシミュレーションを作成–イリノイ大学
IT関連
2022-01-25 12:58
Apple、ポッドキャストのサブスクに対応した「iOS 14.6ソフトウェア・アップデート」提供 iPadOS 14.6、macOS Big Sur 11.4も
IT関連
2021-05-26 13:24
「コロナワクチンの誤情報は公衆衛生への緊急の脅威」と米医務総監が警鐘
企業・業界動向
2021-07-17 09:18
Cloudflare、Amazon S3互換のオブジェクトストレージ「Cloudflare R2」のオープンベータを開始。10GB以下ならずっと無料
Cloudflare
2022-05-12 11:00