Xamarin is going to be open to Everyone

Microsoft Build 2016 2日目のキーノートで、MonoランタイムがMITライセンスに変更され、Xamarin Runtimeと称されるXamarinプラットフォームの部分がオープンソース化されることが発表されました。

blog.xamarin.com

今後数ヶ月、おそらくは来月のXamarin Evolveまでに、何かしらの成果が公開されるのでしょう。Buildから1ヶ月もしないうちにXamarinオンリーイベントとか、まあまさかもう動かせないしやるしかないって感じですね。ちなみに参加が危ぶまれていたわたしですが、何とか行けることになったので、現地に赴かれる酔狂な皆様もある意味ご安心下さい。(?)

(XamarinがVSに…云々は、ここではどうでもいい話なので、そういう話はそういう方面のコミュニティを眺めて下さい。)

monoランタイムがMITライセンスになると、Unity(3D)のような製品が、ライセンスを気にすること無く、既に組み込みLinux環境に最適化されたmonoを、改変ソースを公開せずに使用できるようになります。(ただし、Unityで使用されているmonoランタイムは、本家monoにかなり手を加えたものであり、かつかなり昔のバージョンをもとにしているはずなので、最新版のmonoにすんなりアップデートするということはないだろうと思います。) .NET Coreも既にクロスプラットフォームで動作しますし、.NET MicroFxという選択肢もありますが、いま.NET Coreを選ぶのは、長期的な計画でもなければかなりチャレンジャーであることは否めませんし、minimized runtimeやstable embedded APIを期待している人は、まだmonoを選んだほうが良いかもしれません。この辺は、それぞれの特性や自分の計画を踏まえて選ぶのが良いでしょう。

ランタイムがMITライセンスに変更になったのは、もちろんMonoチームがもはや組み込みライセンスビジネスで生きていく必要がなくなった(Microsoftエコシステムの一部として開発していく)ことから実現したものです。

そしてXamarinプラットフォームのOSS化。ついにこの日が来てくれた、という感じです(まだですけど)。

いずれはLinux環境でも利用可能になり、全てとは言わないまでもコア部分だけでもオープンソースの環境として公開し、アプリケーションが開発できるようになってほしい、と思っていましたが、とうとう実現しそうです。

公式ブログには、アプリケーションをビルドするために必要となるツールとライブラリ一式がOSS化される、とあります。もちろんMicrosoftは全てをオープンソースに捧げているわけではなく、Visual StudioなどのIDEに統合する部分を、引き続き製品の一部として(のみ)提供していくわけで(ちなみにXamarin Studio for Windowsは無くなります。もちろんMonoDevelopは引き続きOSSです)、その部分はクローズドソースで収益源になるようです(その辺はFAQを見てもらえればと思います)。

ソースを書いてアプリケーションをビルドするための、最小限の環境は提供するから、IDEに頼りきらない開発者は我が道を切り開いて歩いてくれ、ということです。面白い。受けて立とうじゃないか。われわれは.NET Framework SDK Toolsしか無いような環境でも生き延びてきたんだぜ。(って自分が中の人だったことを忘れるところだった…)

個人的にも、自作のライブラリなどをiOS/Androidで展開する時に、商用製品を買ってもらわないとcontributeしてもらえない事態には、忸怩たる思いがあったので、これで誇りをもって開発していくことができます。

オープンソースで.NET開発を推進してきたMonoが、Xamarinになってクローズドソースの製品を売り続けてきたのを、Microsoftが買収してオープンソースにして公開するというのは、歴史の皮肉とも言えますが、実に面白い展開になってきましたね。

面白いといえば、JetBrainsとUnity3DとRedHatが.NET Foundationにjoinするというニュースもなかなかのインパクトだと思います。Riderもプレビュー版が公開されたばかりなので、JetBrainsが、Javaで書かれたIDEに.NETをどう組み込んで統合していくか、見ものですね。わたしが彼らに大いに期待しているのは、.NET Core統合の実現です。RedHatLinux環境で.NET Coreの普及を促進していくための協業をどう展開していくかですね。Unityは、まあ言うまでもないでしょうけど、最適なランタイムを実現するための選択肢が広がって、近くない将来の見通しは良くなったのではないかと思います。

Build1日目のUbuntu組み込みの件も含めて、今回のBuildには面白いネタがたくさんありましたね。日本でも5月下旬のde:codeでいろいろ紹介されると期待しています。わたしは今のところ参加する予定はないのですが(どういう身分になっているのかすら何も決まっていないし!)、この辺に関心のある人が集まる日々になるので、何かしら集まって話せる機会を設けたいところですね。