InfoQ

InfoQ

News

マイブックマーク

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

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

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

Merb 1.0リリース間近、RC1登場

作者 Mirko Stocker , 翻訳者 編集部 投稿日 2008年10月25日

セクション
デベロップメント
トピック
Ruby ,
Webフレームワーク ,
Ruby on Rails
タグ
Merb

Merb 1.0の初のリリース候補版(Release Candidate 1; RC1)が登場した(リンク) 。Merbの目標は、そのWebサイトに記述されているとおり(リンク)、「コア内のあらゆるものを使ってモノリシックライブラリを生成しようとする」のではなく、最小限でありながらプラグインによって拡張できる強力なコアを提供することである。

InfoQは、Merbの保守担当者であるYehuda Katz氏(リンク)にインタビューし、Merbの概要について聞いた。

Merbについて最も重要なことは、ほとんど前提を置かない強力なコア機能セットを提供することに焦点を合わせるということです。それに加えて、きめ細かく削除できるデフォルトセットを追加しています。我々とは異なる前提を置きたい場合にもこのデフォルトが絡んでしまうことなく、ごく簡単に削除できるようにすることに、多くの時間を費やしています。

これによって、新しい手法やパラダイム(たとえば、クラウドコンピューティング、JavaScript技術の変化、Rubyのデータベースサポートの改善など)に適応することが、はるかに容易になります。

我々の見解では、MerbとRailsの最大の違いは、Merbは我々が提供するデフォルトからの極めてきめ細かな逸脱を信用するのに対し、Railsはかなり大きな逸脱の決定を必要とすることです。Merbスタックはレゴブロックで作ったスタックといった感じで、Railsスタックはデュプロブロックで作ったスタックに近いといえます(前提から逸脱する場合、多くのことから逸脱することになります)。

そういう訳で、MerbはConvention over Configuration(設定よりも規約)というRailsの考えに100%同意しています。我々は、Merbを使用する開発者が、類似した独断的な前提セットを用いてすぐにでも実行できることを望みます。

フレームワークを切り替えるには通常、時間と労力がかかる。したがって我々はMerbがRails開発者の移行をどのように手助けするのかを知りたいと思った。
 

良い知らせは、今までどおりご自分のActiveRecordモデルを使用できるということと、コントローラとビューが比較的簡単に移植を行えるくらい類似しているということです。とは言っても、MerbとRailsの間には構文上および概念上の違いがあるため、今月末の最終的なMerb 1.0のリリースまでにMerb wikiに相違のリストを掲載する必要があります。


Merbに関する近刊書も2冊ある。

私はManning出版のMerbに関する本(リンク) を執筆しており、すでにこれはMEAPプログラムを通じて入手可能になり始めたところです。また、Foy SavasはAddison Wesley出版の本を執筆しています(リンク)

1月のInfoQのインタビューでは(参考記事・英語)、「セントラルプラグインサイト」について述べられた。それに関する状況はどうなっているのか?
 

1.0リリースの一環として、Merbプロジェクトに第一級市民(first-class citizens)として、認証、キャッシング、例外通知などの多数の共通プラグインを含めることが必要です。ある時点で、セントラルプラグインレポジトリを再び取り上げるかもしれません。

 

Yehuda氏は最近Merbサーバー(リンク)の改善についてブログに書いていたので、それに関して詳しく説明してもらった。
 

MerbにもRailsにも、自らを起動してページを提供するメカニズムがあります。Railsでは、このメカニズムはスクリプト/サーバーです。Merbでは、merbコマンドです。1.0については、Merb 0.9では非常に不足していた機能を追加するためにサーバーに関するmerbのバージョンを大幅に改善しました。


いくつかの例を挙げます。
  • すでに使用している特定のポートに結合するようにMerbサーバーのクラスタを起動しても、Merbをクラッシュさせることはありません。代わりに、Merbは通知を出し、ポートが利用可能になるのを待機します。このため次の配備ソリューションが可能になります。 (1) リモートサーバー上で新しいコードを更新する; (2) 新しいmerbクラスタをロードする; (3) 古いクラスタを潔くkillする。
  • gemを追加していない、またはinit.rbを修正していない場合、生産時にコードを高速、簡単に間違いなく再ロードできるようになりました。単にmerbを実行します。問題のディレクトリに高速で再配備し、すべてのコードが再ロードされます。
  • merbワーカープロセスはkillされると(kill -9を介してですら)、即座に再発生します。このため、ダウンタイムについて心配することなく、肥大化したプロセスをmonitにkillさせることが可能になります。
     
将来、我々は、merb配備ソリューションをさらに改善するつもりです。

1.0はリリース間近になったが、Merb 2についてどのような計画があるのか?
 

計画は、今後1年の間にいくつか1.xリリースを公開し、2.0に予定される機能をプレビューできるようにすることです。新機能すべてを含んだ大きな2.0リリースを投下するのではなく、1.xリリースを、2.0機能に慣れるために使用できるリリースとして扱い、また、Agileの精神で、追加的にMerb 2.0を開発する方法として扱います。


Merb 2.0の大きな話題となるのは、Merbでさらに容易に起動し実行できるようにPythonコミュニティのフレームワークから、および他のプログラミング言語から学習し、迅速なプロトタイピングのサポートが改善されることになるということです。我々は、JavaScriptライブラリとのさらなる統合を提供し、jQueryなどのライブラリとそれに関連したプラグイン、CSS、およびイメージを可能な限り容易にインストールできるようにする予定です。


我々は、Merbアプリケーションのメモリ使用をさらに最適化し、merbプロセスのクラスタのオーバーヘッドを低減し、そして恐らくmerbプロセスのクラスタをオンザフライで拡大・縮小できるようにするために、Merbサーバーをさらに改善する予定です。

Merb 1.0は数週間のうちにリリースされる見込みだ。MerbのWebサイトにインストール方法が掲載されている(リンク)

原文はこちらです:http://www.infoq.com/news/2008/10/merb-1-0

特集コンテンツ一覧

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 のベースとなっている「メトロ」というデザイン言語を掘り下げながら、既存環境を意識しつつもどのようにタッチユーザーインターフェイス開発に取り組んでいくべきであるかについて解説していく。