Xamarinは、iOS and Android開発向けの非同期対応ライブラリのプレビューをリリースした。この成果は、
Visual Studio 2012の一部として昨年リリースされた Microsoftの .NET 4.5に大きく基づいている。
Xamarinは、以前はAndroid用の MonoTouch と Monoとして知られていた開発プラットフォームの新名称である。
Xamarin 2.0イニシアチブの一環として、モバイルプラットフォームは、 Mono と .NETにあるクラスライブラリを
採用している。以前、Android用の MonoTouch と Monoは、Silverlight/Moonlightベースのサブセットに制限
されていた。Rodrigo Kumpera氏は書いている。
非同期処理がこのリリースの主要テーマだが、7000以上のコミットによる、Monoランタイムへの2年間の
改善が詰め込んでいます。それらを Android, Mac、iOSのユーザーが使えるようになりました。
このリリースは、またiOSバッチコンパイラーにも改善をもたらしている。他の殆どのプラットフォームと違い、
iOSはJITコンパイルされたコードを許可しない。これは、動的に起動されるコードで特にジェネリックスが
関与した場合に問題となる。
iOS上で、我々は値型に対して「共有可能なコード」を生成できるようになりました。これはコード生成技術に
おける真に革命的な革新です。実用上、これが意味すことは、以前「JITコンパイル方式を試しています」で、
クラッシュしたコード全体が動くようになった、ということです。我々は、尚推論できる、高パフォーマンスで、
微調整した汎用コードを提供します。例えば、メソッド Foo<T>(T x)?への直接呼び出しでは、以前は失敗
した動的ケースで、使うことができる Foo<T>(T x) の値型共有バージョンを生成します。かつて夢だったものが
現実になりました。
現在、 Microsoftの .NET 独自の JITコンパイラには、この機能はない。1つのメソッドを全ての参照型で共有し、
ジェネリックなメソッドは、それぞれ個別の値型で再コンパイルする必要がある。
共変と反変のサポートが.NET 4.0で導入されたが、Xamarin プラットフォームでも存在する。
http://www.infoq.com/jp/news/2013/03/async-xamarin