InfoQ

News

Anvil - RubyのMVC GUIライブラリー

作者 Antonio Cangiano, 翻訳者 長部 広太 投稿日 2008年2月26日 午後6時22分

コミュニティ
Ruby
トピック
プログラミング,
Domain Specific Languages
タグ
Rails,
GUI
Anvil(サイト・英語)は意欲的なMVCフレームワークで、RubyでクロスプラットフォームなGUIアプリケーションを開発するのに適しています。現在 Anvilは、WxRuby(サイト・英語)が必要です。WxRubyはポピュラーなWxWidgets(サイト・英語) C++フレームワークのRuby版バインディングです。しかし、それは特に特定のツールに依存しているものではないので、例えばRubyCocoaや FxRubyなどのツールキットを必要としないだろう。Anvilプロジェクトはまだ生まれて間もないが(バージョンはまだ0.0.1だ)、RailsやMerbなどのフレームワークを使うとWebアプリケーションの開発が楽になるように、RubyでGUIの開発を行うのが楽になるDSLとしてRubyコミュニティで知られるようになってきました(source)

我々infoQスタッフはAnviフレームワークの開発者であるLance Carlsonに、Anvilプロジェクトのヴィジョンやリリース計画に関してインタビューを行いました。

Antonio Cangiano (InfoQ): 現在Anvilの開発者はあなた一人ですが、あなた自身のことやあなたのRubyとの関わり合いを教えてくれませんか?
Lance Carlson: 仰る通り現在Anvilの開発者は私一人です。しかし一緒に開発してくれる仲間を数人得て今の状況が変わる事を望んでいます。このプロジェクトでは助っ人を得るのが難しかったです。たとえこの状況が直ぐに変わる事を望んでいたとしてもです。個人的な話をすると約三年間Ruby on Railsでプログラミングをしてきました。また契約者として多くの時間を費やしてきました。最近私はEngine Yardに雇われ、時間が許す限り、Merb、Sequel、その他にも関係がある優れたオープンソースプロジェクトに力を注いでいます。

AC: RubyのGUI開発に関する現在の状況をどう思いますか?またAnvilプロジェクトを始めた頃のヴィジョンを教えてください。
LC: Ruby GUI開発キットの現在の状態を他の言語と比較すると、かなり新しくて且つ未発達です。そして更にフレームワークが少ししか存在しません。また、利用できるオプションは、コードを使用しているRubyのDSLを表すことより、C言語のような構文をのような構文を用いる傾向があります。Anvilに対する私のヴィジョンは、GUIツールキットとRubyを使う人なら知っていて好んで止まないシンタックスシュガーとの間のギャップを埋めるフレームワークを作ることであり、また同様にAgileなGUI開発環境用に必要なツールを提供することです。そのようなツールはテストスイート、MVCアーキテクチャ、コードジェネレータ、gemベースのプラグイン、環境ステージ、そして簡潔なアプリケーション構成を含みます。将来的に、私は、ActiveRecord、Sequel、DataMapperのようなポピュラーなORM全てとの統合のサポートを予定しています。また WxRubyに加えてRuby Cocoa、FxRubyと他のGUIツールキットを提供する予定です。Anvilが今よりも発達し製品として熟したら、ActiveResourceによる統合を考慮したいと思う。.

AC: Anvilを見ていると、Anvilは、RailsがWeb開発で成し遂げたことを、Rubyのデスクトップアプリケーションでも行おうとしているように私には見えます。 Engine YardとMerbプロジェクトに関わった事によって、Anvilはなんらかの影響を受けますか?またプロジェクトのアーキテクチャのことを教えてくれますか?
LC:
Merbプロジェクトに関わった事により、私は良いアイデアが沢山浮かびました。そのアイデアとはAnvilコンソール、コンフィギュレーションセットアップ、環境、プラグインシステムそしてその他のものです。私がWEBフレームワークから拝借して取り入れたい部分は、開発者として開発を自動化する箇所です。残りのフレームワークは、DSLを使用したシンタックスを表現することにより、Rubyで利用出来るGUIツールキットを使った開発者の作業を自動化出来ます。高いレベルの抽象概念が、開発者をGUIのポーションについて心配するところから会報誌、アプリケーションのより大切な部分に集中出来るようにしてあげなければいけないと思っています。

AC: 最初の0.0.1版は、約1ヵ月前リリースされましたが、近々のプロジェクトの計画はどのようになるのでしょうか?
LC:
次のリリースで、私は前にリリースしたものに含まれる障害を取り除き、幾つかの機能を含める予定です。またMerbのgemベースのプラグインシステムを真似たプラグインフレームワークを導入する予定です。そしてwidgetwrapperが提供するDSLを使用してWxRubyの機能をより多くカバーしたいと思っています。

AC:
Anvilは、Ruby向けの唯一のGUIフレームワークではありません。_whyのShoesは、RubyでGUIを作成するプロセスを単純にしようとするDSLフレームワークです。Anvilが他のGUIフレームワークと異なるところは何なのでしょうか?そしてRuby開発者がこれを利用すべき理由はなんでしょうか?
LC: Anvilは、whyのミニフレームワークからインスピレーションを幾らか受けました。彼のDSLから、RubyでGUIアプリケーションを開発することがどれくらい強力でありうるかについて理解しました。RailsがWebアプリケーションの頼りになるソリューションとなったのと同様に、AnvilがRubyのGUIフレームワークにおける頼りになるソリューションになるであろうというところにAnvilとShoeの違いがあります。Shoesは依然として軽量アプリケーションを作る際の良い選択肢となっていますが、より完全なGUIツールキットをお望みなら、Anvilをお試し下さい。Rubyの開発者は、Anvilに触れて、Rubyが利用出来るテクノロジーの範囲を増やすべきだと思います。Rails開発者は、一般的なアプリケーションレイアウトを既に知っているので、GUIアプリケーションを開発することになっても問題はないでしょう。Anvilは、Rails開発者がGUIを使うことにより、最小の努力でRubyアプリケーション開発を可能にすることを目指しています。


以前InfoQで取り上げたRubyのGUI開発に関する記事もご覧下さい(source)

原文はこちらです:http://www.infoq.com/news/2008/02/anvil-interview

ブックマーク
digg+,
reddit+,
del.icio.us+,
dzone+,
Hatena

No comments

返信

ジャンル別一覧

クラウドコンピューティング ~ EC2、Mosso、GoGrid

クラウドコンピューティングのプロバイダーであるEC2、Mosso、GoGridの新しいユーザーエクスペリエンスと、それぞれの機能の違いについて学びます。

仮想化入門

このArticleでは仮想化に関する利点と欠点を見ながら、仮想化の違いについて詳しく追っていきます。

Java 6のスレッド最適化は実際に動作しているのか? - パートII

パート2では、ベンチマークの結果を検証するために用いられるテクニックについてさらに深く見ていきたいと思います。最後に、「なぜプロセッサが異なるとロックのコストも大きく異なるのか」と言う真の疑問に答えます。

RESTアンチパターン

本稿では、Stefan Tilkov氏が「RESTful」な設計であると主張するアプリケーションに見受けられる最も一般的なアンチパターンのいくつかについて説明し、それらを避けるための方法を提案しています。

モデル駆動ソフトウェア開発のためのベストプラクティス

Sven Efftinge氏、Peter Friese氏とJan Köhnlein氏が、MDDを取り入れて成功した経験から、ベストプラクティスの解説を行います。

Spring 2.5:Spring MVCの新機能

この記事は、Spring 2.5で導入されたアノテーションを探究する3部作の第2弾です。Web層におけるアノテーションのサポートを扱います。最後の論文では、統合と検査で利用できる追加機能を説明する予定です。

"YUKATA"から始まるコミュニケーション(Agile2008 ライトニングトークより)

私は「浴衣」を着てパーティーに参加したことで、たくさん声を掛けていただけました。 そこで感じたことは、このカンファレンスが人との繋がりを生み出し、また言葉の壁を越えて積極的に交流する場所であることです。民族衣装はそれらを助けてくれるものでした。きっとこの交流が、新たなムーブメントをアジア圏の仲間たちにも与えてくれると確信しています。

ソフトウェアのリーン思考入門

これは、InfoQ Chinaのアジャイル編集者、Jacky Li氏によるリーン思考とリーン思考をどのようにソフトウェア開発に適用するかについての入門です。