InfoQ

InfoQ

News

マイブックマーク

ブックマークするためにログイン または 会員登録 する

ブックマークされました!

ブックマークがエラーになりました。もう一度お願いします。

モバイルRubyの総まとめ:Symbian Ruby 1.9、Android、JME、iPhoneおよびMono

作者 Werner Schuster , 翻訳者 編集部 投稿日 2008年11月25日

セクション
デベロップメント,
設計/アーキテクチャ
トピック
Java ,
.NET ,
Ruby ,
モバイル ,
ランタイム
タグ
iPhone ,
Symbian ,
Java ME ,
JRuby ,
Android ,
Mono ,
IronRuby

Symbian向けRuby 1.9(リンク)のポートが、現在利用可能であり、Ruby 1.8バージョンが(Symbian向けのPythonと共に)利用可能になっている。

SymbianのRubyの他に、現在携帯電話でのRubyのサポートについては、あまりない。AndroidでRubyのARMバージョンを実行することが、可能である(リンク)

AndroidはJavaベースであるため、AndroidでJRubyを実行させるという選択肢もあるかもしれない。ここでの問題は、Androidが Javaのバイトコードを実行せず、代わりにDalvikバイトコードを実行するということである(JVMバイトコードはDalvikバイトコードに要変 換)。JRubyのユーザリストに関する議論で、JRubyのCharles Nutter氏は考えられるソリューションを提示している(リンク)

以下の制限で動作する2つの実行シナリオがある。
* すべてのコードがデバイス上で解析され、AST-walking変換ロジックで実行される、純粋な変換。これは想像してる以上に遅いかもしれないが、簡単に動作させることができる。
*前もってすべての呼び出し側/ハンドルが生成される、純粋なコンパイル。 どちらのケースも現在のコードベースで可能である。片方のみを提供し、他方には依存しないdeliverable .jarを作成することが唯一のこつかもしれない。


こんにちJRubyをJMEで実行することは、選択肢ではない。JavaOne 2007で、JRuby to JMEのポートが提示された(リンク)。リンクされた場所にあるZIPファイルには、JavaOneの プレゼンのスライドがある。JRubyのサブセットをJMEで実行させる際に関わるプロセスを詳述するものである。JMEはJavaの縮小バージョンであ るため、JRubyの実行ではJRubyの大部分を再書き込みする必要がある。JRubyの現バージョンは、Java 5に依存しているが、スライドが示すように、JMEは追加されたクラスおよびメソッドがない。Regular ExpressionsまたはCollections APIの大部分が、削除されている。

IronRubyやiPhone向けMonoの形式で、まもなく別のオプションが利用可能になる。iPhoneのAppStoreは、インタープリターのダウンロードを可能にしないが、最新のMonoバージョンにはソリューションがある。事前のコンパイルである(リンク)。すなわちCILのコードがCPU命令にコンパイルされる。iPhoneの場合は、ARM命令にコンパイルされる。IronRubyは、RubyコードをCILにコンパイルすることができるので、それらを解釈せずに、RubyアプリケーションをCILにコンパイルすることができ、AOTがそれをコンパイルし、iPhoneで実行することができる。Miguel de Icaza氏が述べるように、IronRubyコードが実行可能になるまで、ちょっとした問題が残る(リンク)

当然、JITを除去すれば、動的に生成されたコードを使用できなくなる。これは少なくともしばらくは動的なReflection.EmitやIronPython/IronRubyが使用できないことを意味する。 PDCでJohn Lam氏は、IronPython/IronRuby/DLRバックの静的コンパイルを検討していることを言っていたので、この制限はほんの少しの間だけである。

 

原文はこちらです:http://www.infoq.com/news/2008/11/mobile-ruby-roundup

特集コンテンツ一覧

GAE開発の落とし穴

Googleのクラウド環境をつかったGoogle App Engineによる開発するにあたり、初めての試みで苦悩する開発者達の経験をもとに、各開発フェーズにあわせて問題点やどう解決したかをご紹介します

イベントレポート:「Coqチュートリアル#1」

去る1月12日、定理証明支援系ツールCoqの初心者向けチュートリアルが開催さ れた(http://kokucheese.com/event/index/23667/)。今後も2月2日 (http://kokucheese.com/event/index/23744/)、2月9日、2月16日と引き続き開 催されていく予定である。本記事では、開催の様子をレポートする。

Javaの未来についてのNeal Gafter氏とのディスカッション

Choosing Options

Neal Gafter氏はOracleによるJava買収の影響に関する議論、Javaにセグメンテッドスタックやメタオブジェクトプロトコルを追加することについての主張、そしてJavaとC#との比較について話をしてくれた。

Google Dartのエッセンス:アプリケーションの構築、スナップショット、Isolate

GoogleはVMをともなう新しい言語であり、JSコンパイラでもあるDartをプレビューした。 InfoQはDartのアプリの構築に貢献する文法の裏側を探った:スナップショット、Isolate、モジュール方式

CSPベースのモデル検査ツール「Process Analysis Toolkit」

本記事ではCSPベースの「マルチドメイン・モデル検査ツール」である、PAT(Process Analysis Toolkit)について紹介する。モデル検査は、形式手法(Formal Method)という方法論を基礎とする技術であり、複雑さが増大しながらも安全性を求められる、現在のソフトウェア開発の状況に対する処方箋の1つとして注目されている手法である。

Jenkinsによる継続的インテグレーションのススメ(4) ~CloudBeesでJenkinsをサービスとして使う~

前回まで、Jenkinsの幾つかの側面に注目して解説をしてきました。シリーズ最後の今回は、Jenkinsをサービスとして使う方法を紹介します。

書籍『抽象によるソフトウェア設計-Alloyではじめる形式手法-』の紹介

Alloyは、MITにて開発された仕様記述言語であり、ツールによる自動解析を使い、インクリメンタルに形式仕様が書けることが特長である。筆者らはAlloy開発者による、Alloyを使った形式手法入門書を翻訳、今夏にオーム社より刊行した。本記事では、Alloyの簡単な概要と、翻訳書『抽象によるソフトウェア設計』(「Alloy本」)を紹介する。

Windows デバイスで開発するタッチユーザーインターフェイス

スマートフォンを中心としたマルチデバイスにおけるタッチユーザーインターフェイスへの対応は、既に必須の項目となりつつある。本記事では、Windows デバイスにおける UX のベースとなっている「メトロ」というデザイン言語を掘り下げながら、既存環境を意識しつつもどのようにタッチユーザーインターフェイス開発に取り組んでいくべきであるかについて解説していく。