GAE開発の落とし穴
Googleのクラウド環境をつかったGoogle App Engineによる開発するにあたり、初めての試みで苦悩する開発者達の経験をもとに、各開発フェーズにあわせて問題点やどう解決したかをご紹介します
ブックマークされました!
ブックマークがエラーになりました。もう一度お願いします。
作者 Robert Bazinet , 翻訳者 金森 諭 投稿日 2009年8月3日
IronRubyが最初にMicrosoftから発表されたのはMIXカンファレンス’07だった。それから2年たった今、バージョン1.0はどうなっているのかとディベロッパたちは怪訝に思っている。InfoQが2008年1月にJohn Lam My氏にインタビューした際、その年の第2半期のリリースを目指しているという話だったが、そうはならなかった。
とはいえディベロッパたちは物事には思っていたより時間がかかることが常であることを知っている。
近頃MicrosoftでIronRubyプロジェクトのプログラムマネージャを務めるJimmy Schementi氏が“IronRuby 0.9”と題する講演をOSCON 2009でおこなった。その中で氏はIronRuby 1.0に向けてのMicrosoftの進捗を概説した。IronRubyは2008年当初にJohn Lam氏と話しをした時から比べるとずっと多くのディベロッパたちに使われてきた。重要なアップデートもいくつかあったので、それをおさらいしてみよう。
2009年7月の始めにリリースされ、言語の発展において重要なマイルストーンとなった。Jimmy Schementi氏は自信のブログでこう説明している。
このリリースではパフォーマンスが一番の焦点でした。起動時間を短くし標準の型の最適化をおこないました。Rubyとの互換性(Cucumberも動きます!)や.NET相互運用性も向上しています。
氏のOSCONでの講演の焦点は、主要機能のうち最後に残っていたもの(最近の氏のブログで概要が示されている)やIronRubyのキーコンポーネントが0.9に含まれていること、そしてディベロッパにとってIronRubyが重要であるということだった。
クロスプラットフォームでクロスブラウザなRuby実装であることについてこう述べている。
.NETと聞いた時(まずはトップレベルのドメイン名のことかと思うでしょうが、“Microsoft”のそれだと判った時)すぐに“Windows”のことを考えるでしょう。しかしそれは現実でないことをMiguel(Monoの創設者)とMonoチームが示しています。彼らはLinuxでもMac OSでもWindowsでも動く.NETのオープンソース実装を作りだしました。そしてMoonlightと呼ばれるSilverlight 2のオープンソース実装も作っているところで、これによりSiliverlightアプリケーションがMozillaのプラグインアーキテクチャをサポートするLinuxブラウザでも動くようになります(Silverlight 2自体はIntel MacやWindowsをサポートしています)。IronRubyは.NETでもSilverlightでも使えるので、MonoでもMoonlightでも使えることになります。
IronRubyは.NETと直接連携するため、既存の.NETコードをIronRubyで利用することも可能です。つまり、Windows Formsであれ、Windows Presentation Foudation(WPF)であれ、GTK(#)であれ、どんなフレームワークでもIronRubyで利用できるということであり、それは.NETとMonoと(それぞれ)がそれらフレームワークに対応するCLIバインドを備えているから可能なのです。MonoにもWindows FormsをGTKに変換する形でWindows Forms実装があり、.NETでもMonoでも修正なしに同じアプリケーションが実行可能です。
動的・静的な言語相互運用性についてはこう述べている。
IronRubyは.NETフレームワークのAPIと非常によく連携するため、“相互運用性”ということを意識しないでC#やVBのコードをIronRubyから呼び出すことができます。C#からもDynamic Language Runtime(DLR) Hosting APIを通じてIronRubyを呼び出せます。しかし実際には、.NET 4.0のdynamicを使ったメソッドディスパッチはC#の一部分であるため、C#のメソッド呼び出しと同じくらい簡単にC#からのIronRubyの呼び出しがおこなえます。IronRubyはDLR上に構築されているため、他のDLR言語とも相互運用が簡単で、すでにPythonとRubyが(IronPythonとIronRubyによって)一緒に使え、これから出てくるDLR言語とも一緒に使うことができます。
パフォーマンスの向上も重要で、たとえばRuby on Railsの起動に80秒以上かかっていたのが約20秒までになった。また現在のIronRubyがRubySpecテストスイートにもきちんと対応していることにも注目すべきだろう。
互換性は今のところ非常によい出来になっています。RubySpecを(85%で)パスし、Rails、Rake、RSpec、RubyGemsといった主要なRubyフレームワークのテストスイートはチェックイン毎に走らせています。そしてかなり大規模な複数のRailsアプリケーションを動かすこともできています。互換性のバグが増えるようであれば、それは間違いなく1.0までのリリースにおいて重点となります。
またこうも述べている。
今度のバージョンの目玉はWin32OLEライブラリのサポートで、MRI(Matz' Ruby Implementation)と同じように既存のRubyアプリケーションでCOMとのやり取りができるようになります。
パフォーマンスの良さはMRIのような他の実装と比べた時にも注目に値する。
パフォーマンスも大変良好です。今回のバージョンをRubyのベンチマークスイートにかけたところ、ほとんどベンチマークにおいてMRIの2倍以上の成果をあげました。この結果はIronRuby 0.9が出るのと同時にhttp://ironruby.infoに掲載します。
IronRuby 1.0はいつリリースになるか?それはコミュニティ次第だろう。コミュニティがIronRuby 1.0になったというまでは、以降の改良バージョンは0.9.1や0.9.2というようにリリースされるだろう。
IronRubyの情報、ダウンロード、活動参加、必要なサポートはIronRubyのウェブサイトを参照いただきたい。
【ネクストスケープ】.NET、C#のアプリケーション開発者募集
【豆蔵】大好評のため、Jenkins講座を追加開催致します!Jenkins作者の川口氏が講師です。
Googleのクラウド環境をつかったGoogle App Engineによる開発するにあたり、初めての試みで苦悩する開発者達の経験をもとに、各開発フェーズにあわせて問題点やどう解決したかをご紹介します
去る1月12日、定理証明支援系ツールCoqの初心者向けチュートリアルが開催さ れた(http://kokucheese.com/event/index/23667/)。今後も2月2日 (http://kokucheese.com/event/index/23744/)、2月9日、2月16日と引き続き開 催されていく予定である。本記事では、開催の様子をレポートする。
Neal Gafter氏はOracleによるJava買収の影響に関する議論、Javaにセグメンテッドスタックやメタオブジェクトプロトコルを追加することについての主張、そしてJavaとC#との比較について話をしてくれた。
GoogleはVMをともなう新しい言語であり、JSコンパイラでもあるDartをプレビューした。 InfoQはDartのアプリの構築に貢献する文法の裏側を探った:スナップショット、Isolate、モジュール方式
本記事ではCSPベースの「マルチドメイン・モデル検査ツール」である、PAT(Process Analysis Toolkit)について紹介する。モデル検査は、形式手法(Formal Method)という方法論を基礎とする技術であり、複雑さが増大しながらも安全性を求められる、現在のソフトウェア開発の状況に対する処方箋の1つとして注目されている手法である。
前回まで、Jenkinsの幾つかの側面に注目して解説をしてきました。シリーズ最後の今回は、Jenkinsをサービスとして使う方法を紹介します。
Alloyは、MITにて開発された仕様記述言語であり、ツールによる自動解析を使い、インクリメンタルに形式仕様が書けることが特長である。筆者らはAlloy開発者による、Alloyを使った形式手法入門書を翻訳、今夏にオーム社より刊行した。本記事では、Alloyの簡単な概要と、翻訳書『抽象によるソフトウェア設計』(「Alloy本」)を紹介する。
スマートフォンを中心としたマルチデバイスにおけるタッチユーザーインターフェイスへの対応は、既に必須の項目となりつつある。本記事では、Windows デバイスにおける UX のベースとなっている「メトロ」というデザイン言語を掘り下げながら、既存環境を意識しつつもどのようにタッチユーザーインターフェイス開発に取り組んでいくべきであるかについて解説していく。
No comments
スレッド表示 返信