SapphireSteel SoftwareはRuby in Steel 1.2というRuby開発環境のアップデートをリリースした(source)が、1.2ではVisual Rails Workbenchが新しく加わった。
Ruby in SteelはVisual Studio 2005/2008用のRuby開発環境アドインの完全版である。インストールすると、開発者は以下のような多数の機能を使えるようになる。
- ドラッグ&ドロップを使ったVisual Rails Page Design
- Intellisense(インテリセンス)
- Visual Studio内での統合デバッグ
- Ruby on Railsのサポート
- 機能の完全リスト(source)
さらに、Rubyランタイムもサポートする。
- 標準Ruby 1.8.6
- JRuby
- IronRuby
InfoQでは最近、SapphireSteel Softwareの共同設立者であるHuw Collingbourne氏と、同社のフラッグシップ製品Ruby in Steelの今回の画期的なリリースについて話をする機会を得た。
Rob Bazinet (RB): Huwさん、簡単な自己紹介とSapphireSteel Softwareを経営するようになったいきさつをお話しいただけますか。
Huw Collingbourne (HC): SapphireSteel SoftwareはDermot Hoganと私自身が2006年初頭に組織しましたが、具体的な目的はRubyとRails向けに可能な限り最良のIDEを開発することでした。プラットフォーム候補を複数評価しましたが、私たちが頭に描いていた緊密統合の視覚的IDEの類に使うには、Visual Studioが最適のツールセットとなるという結論に、かなり短時間で到達しました。
Dermotも私も非常に長い間、プログラマーを職業としていますが、私たち二人の類似点はそこだけです。Dermotは、多数の国際銀行向けにリアルタイム取引システムを開発する上級開発者として、人生の大半を費やしてきました。Dermotの専門は、複雑な技術的問題を解決することと、プログラムを極めて高速に動作させること、と言えるでしょう。Dermotのこうしたスキルは、我社のRuby IntelliSenseや「Cylon」というRuby用高速デバッガの開発になくてはならないものでした。一方私は、ベアメタルとは少々距離をおいて仕事をする方が好きです。JavaやC#、Smalltalk、そして(もちろん)Rubyまで、様々な言語でプログラムしてきました。ここイギリスで、雑誌PC Plusのデルファイコラムニストを10年間務めました。私が本当に熱中しているのは、有用性ではないかと思います。ソフトウェアが技術的にいかに高速でも、あるいは賢くても、そのソフトウェアを簡単に(かつ楽しく)使えないと、高速さや賢さは重要ではなくなるのです!
RB: Visual Rails Workbenchとは何ですか。Visual Studio 2005/2008と一体化するのでしょうか。独立しているのでしょうか。
HC: Visual Rails Workbenchは、Ruby On Rails用のフルページの設計環境です。スタンドアロン製品ではありません。Ruby In Steel開発者版の最新リリース(1.2)に緊密に統合されています。
Railsを扱う仕事を始めてこのかた、テンプレートシステムの理解が難しいといつも感じていました。問題は、最終的にアプリケーションを動作させるときに表示されるWebページが、設計時には利用できないということです。その代わりに、埋め込みRubyの破片が入ったHTMLの断片で構成された複数のファイル(レイアウト、ビュー、パーシャル)を使っての作業を強いられます。プログラマーなら、それで何もかも安泰ですが、ピクセルまで完ぺきなレイアウトを作るためにDreamweaverのようなツールを使って視覚的に作業できることを望むWebデザイナーにとっては、好都合というわけにはいきません。
問題は、設計時にどのようにして完全なWebページへアクセスできるようにするか、でした。第一歩は、多数のRailsテンプレートファイルを単一ページに結合する方法を提供することです。それが済んだら、埋め込みRubyのプログラムコードをHTMLマークアップへと変換するという処理もしなければなりません。Railsテンプレート内にあるRubyの断片は、テキスト入力フィールドボタンや日時ピッカーのような、あらゆる種類の視覚的コントロールならびにデータバウンドのコントロールを定義します。Visual Rails Workbenchは、RubyテンプレートとHTMLページの間を「往復」できるようでなければなりません。
最終テストは、複数のERbテンプレートから「合成」のHTMLページを作成することであり、次にDreamweaverなどのサードパーティー製Webデザインツールにそのページをエクスポートすることでした。これが可能ならば、Dreamweaverでデザイン変更が可能で、それをVisual Rails Workbenchに再インポートし、Rails形式のテンプレートで保存可能なはずです。
RB: Visual Rails Workbenchではどの種類のアプリケーションを作成できますか。
HC: Rails 1.2もしくはRails 2.0向けのWebページ作成に使えます。本質的には、美しい「フロントエンド」が必要なRailsアプリケーションならばどんなものでも、Workbenchを使って設計できます。Visual Rails Workbenchそれ自体への「特別な依存性」はないと言っておくべきでしょう。カスタムのテンプレートエンジンやクラスライブラリを必要としません。アプリケーションの設計が終了すればすぐに、アプリケーションのすべてを100%標準のERbファイルとして保存します。
RB: Visual Studioで可能なように、visual designerでビューを作成できますか。
HC: もちろんです。visual designerを使ってコントロールをWebページにマウスでドラッグ&ドロップし、移動したり、サイズを変更したりできます。プロパティパネルを利用して色の追加や変更、テキスト追加が可能です。スタイルシートにリンクして、スタイル変更後すぐにその効果を見ることができます。標準的なWebページで可能なことは全て、WorkbenchにロードされたRailsのWebページに実行可能です。設計を終えるとまるで魔法のように、全てが自動的に解体されてRails形式のERbテンプレートに再変換されるのです。
RB: Visual Rails Workbenchの真のパワーはなんでしょうか。
HC: キーワードは「視覚的」です。Visual Studioユーザーが求めるようなドラッグ&ドロップのツール全てを利用して、設計時に完全なHTMLページで作業できます。Ruby On Railsでは、これまで絶対に不可能だったことです。
RB: Railsのコマンドラインで使い慣れた全コマンド(create model〔モデル作成〕、controller〔コントローラ〕、など)をメニューシステムから実行できますか。
HC: Ruby In Steelには多数のRailsツールが組み込まれています。たとえば、スクリプトの「生成」やRakeタスクを実行できるドッカブルパネルがあります。お気に入りのスクリプトの保存さえ可能なため、後になってそのスクリプトを実行したくなったら、リストから選べばいいのです。スクリプトが完成したら、新規に生成したファイルは全てSolution Explorer(ソリューションエクスプローラー)に自動的に追加されるので、コマンドプロンプトを見たくないなら、見る必要は全くないのです。反対にコマンドプロンプトを使用したいなら、Solution Explorerでディレクトリを選択し、選択したディレクトリ内でコマンドウインドウをポップアップさせるツールも備えています。
RB: Visual Rails Workbenchはデプロイメントに役立ちますか。役立つ場合は、どの種類のWebサーバー環境にデプロイするのでしょうか。
HC: 特別なデプロイメントツールの組み込みはありません。私たちはこれまで、開発プロセスを容易にすることにのみ集中してきました。MongrelやWEBrick、LightTPDを使ったローカルな開発に対するサポートに打ち込んできましたが、最終的には、どのような標準サーバー環境をターゲットにしようとも、それはユーザーの自由です。すでにお話ししたように、Visual Rails Workbenchで生成したファイルは全て、完全に「正常」なRailsテンプレートです。アプリケーションをデプロイする時がきても、アップロードしなければならない追加のテンプレートやツール、コードライブラリなど、余分なファイルはひとつもありません。根本的な設計目標のひとつが、Visual Rails Workbenchを通常のRailsテンプレートとシームレスに連携させることでした。設計プロセスが終わる頃には、アプリケーションがはるかに魅力的な外観になるという事実は別として、このアプリケーションがコードだけで作成されたわけではない点を気に留める必要さえなくなります。
RB: IronRubyやRuby (MRI)、Rubinius、JRubyと、使いたいランタイムをターゲット可能ですか。
HC: 現在のところ、MRI、JRuby、IronRubyを組み込みでサポートしています。Rubiniusも使えますが、今のところRubinius専用のツールはありません。MRIはデフォルトのターゲットでしたし、最近ではJRuby専用のサポートも追加しました。これによりユーザーはVisual Studio内でドックしたコンソールでJRubyを動作させることができ、我社のJRuby版高速デバッガ「JCylon」を使用してプログラムのデバッグも可能です。
最終的には、IronRubyの完全サポートを計画しています。しかし、現時点ではIronRuby自体がまだ開発のアルファ段階にあり、私たちのIronRubyサポートも同様に「アルファ」段階と見なすべきでしょう。そうだとしても、すでにかなり強力なIronRubyコードエディタと視覚的なフォームデザイナーを備えています。IronRuby自体の進歩に合わせて、さらに機能を追加する予定です。
RB: .NETプラットフォーム上で利用できる様々なテストツールをターゲット可能ですか。
HC: .NET特有のテストツールの使用については、まだ調査していません。この件についてはIronRubyの出荷日間近になってからの課題になると思われます。
RB: すばらしいお話をしていただきました。Huwさん、今日はお時間を割いていただき、ありがとうございました。
SapphireSteel SoftwareのWebサイト(サイト・英語)に行けば、Ruby in Steelの情報やRuby in Steel 1.2の使用説明書(source)を入手できる。Huw氏はまた、ブログの更新(サイト・英語)をとても熱心に行っており、Ruby in Steelの更新情報や同ソフトを使う上で非常に役立つヒントを掲載している。
原文はこちらです:http://www.infoq.com/news/2008/04/visual-rails-workbench