マイクロソフトがxlangを発表:クロスランゲージ、クロスコンパイラ、そしてあなたの近くのプラットフォームに登場

Table of Contents

マイクロソフトがxlangを発表:クロスランゲージ、クロスコンパイラ、そしてあなたの近くのプラットフォームに登場

Microsoft では、WinRT で採用されたアプローチを基にしたオープン ソースの xlang という形で、言語の相互運用性を実現するための取り組みが進行中です。

Windows ランタイム(WinRT)は、C言語ベースの使い古されたWin32アプリケーションプログラミングインターフェース(API)を、C++で書かれた魅力的なオブジェクト指向のものに置き換えようとする、崇高な試みです。Windows 8と同時に登場したWinRTは、Microsoftがプラットフォームに依存しないアーキテクチャの輝かしい未来を予見しました。つまり、プラットフォームがMicrosoftのものであれば、それは問題ではないということです。

公平に言えば、そのヒントは「Windows」ランタイムという名前にあります。

残念ながら、Windows Phone の終焉は広く知られており、ユニバーサル Windows プラットフォーム (UWP) アプリは世界を驚かせることはできなかったため、WinRT の将来は設計者が期待していたものとはまったく異なるものになってしまいました。

C++/WinRTは、開発者にWinRT APIへの言語プロジェクションを提供し、最新のWindows APIへのファーストクラスアクセスを提供します。C++開発者は、WinRTの共通オブジェクトモデル(COM)の世界を気にすることなく、標準的なC++言語機能を利用できます。Microsoftは、C++/WinRTがWindowsで最も高速でコンパクトなコードを生成すると考えています。

ショック/恐怖/困惑で「何?」と叫ぶ男性のポップアート スタイルのイラスト。

マイクロソフトはOpen Invention Network(OIN)に加盟しました。繰り返しますが、マイクロソフトはOINに加盟しました。

続きを読む

C++/WinRT の発明者である Kenny Kerr (Redmond のチームは彼の取り組みを見て賢明にも彼を採用しました) は現在、C++/WinRT をベースにした新しいプロジェクトの作業を開始しましたが、これは Microsoft の思いやりと共有の精神に則った、間違いなくクロスプラットフォーム、クロス言語、クロスコンパイラであり、オープン ソースでもあることはお伝えしましたか?

昔なら、スティーブ・バルマーが驚いて汗だくのシャツをステージから投げ飛ばしたであろう類の出来事だ。彼が特許問題にどう反応したかは、想像もつかない。

xlangについては、Kerr氏はWinRTに少し似ていると考えつつも、さらに一歩進んで、あまり使われていないプラットフォームであるWindows 7だけでなく、LinuxやAppleシステムなどもサポートすることを提案しました。その理論は、開発者が1つのプラットフォーム(例えばWindows)で1つの言語(例えばC++)を使って関数を実装し、それを別のプラットフォーム(例えばLinuxなど)で別の言語(例えばPython)から呼び出せるようにするというものです。うまく動作すれば素晴らしいですね。

現時点ではコードはプレアルファ版ですが、Visual Studio 2017 15.8.6以降およびWindows SDK 17663以降でダウンロードしてビルドできます。15.8.9のPreview 3を使って問題なく起動しました(最近のコーディングアドベンチャーでプレイしていた「不足しているファイルや依存関係を探す」ゲームとは一味違います)。

チームは、これがWinRT、COM、あるいはMicrosoftの主要技術の移植版になることは絶対にないと強調しています。現段階では相互運用性技術が中心であり、公平を期すために言えば、現在リポジトリにあるものは、チームが掲げる壮大な理想からは程遠いものとなっています。

しかし、機能が不足しているとか、現状ではWindowsのみのサポートでC++とPythonのサポートが限定的だとか言うのは、本質を見失っていると言えるでしょう。これはむしろ、Microsoftが開発プラットフォームの将来像をどう考えているかを示す、新たな指標と言えるでしょう。雨の日曜日の午後に1時間ほどじっくりと試す価値は十分にあります。®

Discover More