最終的には PC、Xbox、Android プラットフォームで実行したいコードを書いています。可能であれば、Mac と Linux も実行します。プラットフォームごとに書き直すのではなく、すべてのプラットフォームで動作する言語で一度書きたいと思います。Fantomも検討しましたが、どうやらAndroidでは動かず、静的型付けやジェネリクスのサポートが限定的で、ScalaはCLRで動くと聞いていますが、現在CLRには対応していません。これにより、XNA で使用できなくなります。動的型付け言語は実行が遅く (特にスマートフォンでは重要)、デバッグが難しいため、動的型付け言語は使用したくありません。
2 に答える
JVM をターゲットにする必要があるのはなぜですか? この必要性が Android を処理することのみである場合は、おそらくXamarin (当時 Novell で開発されたときに Mono の背後にいた人々) によって開発されている、人気のあるモバイル プラットフォーム用の .NET スタックであるMonoTouchを見てください。Mono自体は、X Window Systemを使用してグラフィカルな対話(「Linux」と呼ばれるもの)を使用して、Macおよびその他のPOSIXプラットフォームをターゲットにする方法です。
いずれにしても、さまざまなプラットフォーム用に GUI パーツを書き直す必要があるかもしれないことに注意してください。まず、タッチスクリーン デバイスで使用されるインターフェイスへのアプローチは、「デスクトップ」デバイスの場合とはかなり異なります。次に、MonoTouch はおそらく提供しますが、対象となるプラットフォーム (Android、iOS、WinPhone) での統合 UI の場合、デスクトップ Windows、Mac、および X ベースのプラットフォームには、.NET または Mono (Windows では WPF または Winforms、Mac OS X ではMonoMac (使用) X を使用する POSIX プラットフォーム上のCocoa ) およびGtk # 。Windows 以外のプラットフォームでは最適ではないため、確認する必要があります。
ただし、少なくともコア プログラム ロジックを各プラットフォームに移植する必要はありません。
PSまた、私がさまざまな機会に見ることができた最新のJVMベースのソフトウェアスタックのほとんどは、IKVMを介してCLRをサポートしていたことに注意してください.