PLT DesignはRacketの新バージョンを発表した。 RacketはSchemeに類似した文法を持つ汎用のマルチパラダイムプログラミング言語である。 Racket 6.7は,Android上でのグラフィカルなアプリケーションの構築,REPLおよびパッケージマネージャの改善,そしてTyped Racketの拡張をサポートする。
Android GUI プログラミングはracket-android プロジェクトにより提供される。 InfoQはJay McCarthy氏(UMass Lowellの助教授でracket-androidの開発者)に取材を行った。
プロジェクト開始のきっかけと,これを使ってどのようなアプリケーションが開発されたのかを教えてください。
Black Swan Learning, LLC (BSL)は,XPrize Global Learningコンペティションにおける,現行チームの一つです。 彼らは,移植版開発に出資してくれました。理由は,彼らが“learning operating system”をRacketで開発しており,またXPrizeコンペティションが,学習ツールはAndroid タブレット上で稼働するよう,要請しているからです。 私がRacketConでByron Davies氏(BSLの設立者)と会ったとき,彼が移植の手伝いを申し出てくれました。 そして現在に至る,というわけです。
技術的に,RacketはAndroidの初期バージョンの時から,Android上で動作していました。 なぜなら,CVMは移植性が高く,Matthew Flatt氏が数年前にARM JITを開発していたからです。 しかし,私たちはAndroidアプリケーションを構築する上でのJavaとRacketを接続するためのいくつかの問題を解決しました。
Racket-androidはOpenGLベースのアプリケーションを構築できることを目指しています。 開発ロードマップには,Androidのその他のAPIのサポートは入っていますか?
BSLは,フルスクリーンの,キャンバスベースのアプリケーションに関心を持っています。 ですので,これが私たちの最初の目標でした。 OpenGLの使用は,その先の実際上の選択です。 なぜなら,これにより,良いパフォーマンスが得られますし,私はすでに,必要とする2D OpenGLエンジンを持っていますから。 現時点で,Racket側にAndroidのJava APIに対するFFIを構築することが可能です。 ただし現時点ではこれに関し,特に技術的な挑戦課題がありません(単に作業負担がある,というだけです)。 というわけで,実装計画はありません。
Android開発にRacketを利用する利点としてどんなものがありますか? デメリットもあれば教えてください。
明らかに,ほとんどのシステムAPIを無視しなければならない(全部ではありませんが)のはデメリットです。 構築作業は興味深いかもしれませんね。 なぜならあなたはAndroidに存在しないライブラリを使用しないよう,注意する必要があります。 私としては,Android開発における特有の利点はないと考えています。 しかし,あなたがRacketプログラミングを好き(DSLを構築したり,関数型プログラミングを徹底したり,など)であれば,楽しくAndroidアプリケーションを構築することができるでしょう。
Racket 6.7に関する追記事項は以下の通り。
-
RacketのREPLは
racket/interactive
を使用するようになった。 これにより,行編集,コマンドおよび結果の履歴,さらにメタコマンドが使用できるようになる。 メタコマンドは既存のREPLのコマンドを拡張可能である。 メタコマンドは“革新的”である。backtrace
は最後の例外のバックトレースを表示する。trace
は指定した関数をトレースする。profile
は,コードのプロファイルを統計的に,または個別に取得することができる。 -
Racketのパッケージマネージャ(
raco pkg
)は,Gitリポジトリからパッケージをインストールする際,git-checkout-credentials
設定オプションを利用することで,認証情報を指定できるようになった。 加えて,raco pkg
はHTTP CONNECTを利用したトンネリングをサポートする。 -
Typed Racketは,漸進的型付けを可能にするためのRacketの拡張である。 Typed Racketは
racket/os
およびracket/db/sqlite
を含むように拡張された。
Racket バージョン6.7はRacket ウェブサイトより入手可能である。
Rate this Article
- Editor Review
- Chief Editor Action