サクサク感について

seasarの産みの親、ひがさんが提唱している
サクサク感のある開発。
最近、この良さ。いや利点がひしひしと分かってきた。


HotDeployは試してみたが、
(環境が悪いせいか)たまにtomcatがどーしようもないことになって再起動が必要になった。
これが無くなればPHPRubyスクリプト言語での開発とある程度遜色無くなると思う。


さて、そのサクサク感だが、
最近その重要性の度合が増してきている。(私の中で)
なぜか?


サクサク感が無い従来のJava開発では、
作る→tomcat起動→テスト→修正→tomcat再起動→テスト・・・
とテストの度にtomcatの再起動が必要になる。
例外的にjspだけの修正なら再起動は必要ない場合があるが。(環境による?)


プロジェクトが大規模になればなるほどtomcatの起動には時間が掛かるようになってくる。
始めのうちはほんの数秒〜十数秒なのが、規模にしたがい1分。それ以上かかる場合がある。

その間開発者は何をするか?
答えはなにもしないである。

1サイクルで1分もなにもしない時間が出来る。
1分くらいどうってことないっしょ?そう思う人もいるかもしれない。
それは大きな間違い。
これは非常に大きな問題だ。


なぜか?
その1分で集中力がバッチリ切れる。
Joel on Softwareで言っているいわゆるゾーン状態から抜けてしまう。
またゾーン状態に戻るためには15分必要だ。
その15分は修正に費される。大きくない一般的な修正は15分もあればテストに入れるだろう。
そしてまたゾーンから抜ける。
その繰り返しで開発者は集中することが出来なくなる。


その結果、いい加減になったり、忘れてしまったり。
そういう自体が起きることは目に見えている。


かくいう私も、PHPで開発している時と、Javaで開発しているときは
集中力の持続が全然違うし、テストもPHPの方がしっかり出来ていると感じる。


いかにサクサク感をもたせるか?
それが開発にどれだけの影響を与えるか。もう一度考えてみてはいかがだろうが?


余談
Java(Hibernate+Struts)よりcakephpの方が格段に「書く量」が違うので、
そういう面の生産性としたら、cakephpに軍配が上がるだろうと思う。
もうひとつスクリプト言語の利点を上げるとしたら、
(フレームワークなどの)ソースが確実に見れるところだろう。
やろうと思えば、フレームワークバグフィックスも個人で出来る。
これは以外と利点が大きい。


最近はJavaJavaJavaでも無くなってきているようで、
SIベンダで受ける仕事もPHPPerlRubyを使うようになってきたようだ。
(私が前に勤めていたところでは、RubyPerlの大規模案件があるらしい)
Java使いでもRubyPerlは(特にテキスト編集など)ツール作成に向いているので
覚えておいて損は無い。


コンパイルという考えが無くなることもありえない話では無くなってきているのかもしれない。