Catalyst アプリってなんでホットデプロイできないんだー!

Java でも最近はホットデプロイといって、プログラムを変更したあとでサーバーを再起動させずにプログラムの更新を反映させる機能がついています。

PHP ではなにも考えずにファイルを上書き保存すれば、即座に反映されます。

プログラムの開発というのは非常に集中力が必要なので、サーバーの再起動時間に数分あるいは数十分かかる場合、再起動の度に集中力が途切れてしまい、著しく生産性が低下して、ほとんど仕事になりません。

対して、Catalyst アプリでは、1行変更しただけでもサーバーの再起動が必要で、いつもイライラしっぱなしです。これなら多少遅くても CGI のほうがいいよ・・・と思うこともしばしばです。

これって Ruby on Rails でも一緒ですよね?なんで話題にならないのでしょうかね?実は再起動が不要な秘策があるのでしたらぜひこっそり教えてください!

以前 Module::Refresh をつかったみたときはボロボロで話にならなかったです・・(リロードしたモジュールの挙動がおかしすぎて)。

追記

id:holidays-l さんに Apache2::Reload を紹介してもらいました。試してみたいところなのですが、過去に mod_perl で起動したら2時間半かかったという前科があるので、厳しいと思われます(汗)。

あの頃からさらに飛躍的にクラス数が増えているのでいったい何時間かかることやら・・(笑)。

追記2

id:miyagawa さんの起動に2時間半もかかるのは、設計が悪いというのはおっしゃるとおりです。ただ、大規模業務アプリになったら数千クラス〜数万クラスとか普通ですよね?Catalyst ははっきり言ってそういう使い方には向いてなくて、WebAPI で疎結合されたコンポーネントを何十〜何百も用意するのが正しい使い方なんだと2年くらいして気づきました(汗)とき既に遅しなんですけどね(苦笑)