過去のコード資産なんて負債

もう文章まとめるの面倒くさいので思いつきの断片そのまま

Javaは冗長だからダメ、という意見を良く聞くけど、たぶん本当にJavaがダメな理由はコード記述の冗長性なんかじゃなくて、フレームワークが巨大だったり重量級で取り回しが面倒って事じゃないだろうか。

元々スクリプト言語はその出自からして特定の領域の問題をさっくり片づけるための言語だから、フレームワークも同様の軽量な思想で作られているものが多い。Railsなんかが良い例。

Railsが軽いかといわれれば疑問だが、Light Weight Language のlightと同じ意味での軽さ

Javaって「Write once, Run Anywhere」というスローガンからはじまったためなのか知らんけど汎用である事をよしとする思想が強いように思う。依存性のないPOJOマンセーというPOJO信仰もその一種か。しかし、汎用性を重視しすぎたためにフレームワークと標準仕様が巨大化複雑化してるのが本当の問題だと思う。

で、最近おWeb系開発って、アプリの寿命も短ければ開発時間も短いので、いかに早く作れるか(裏返すといかに簡単にぶっ壊して捨てられるか?スクラップアンドビルドしやすいか)を重視している気がする。ドメインロジックの再利用なんて最初から考えないからフレームワーク依存性も気にしない。

場合によっては過去のコード資産すらメリットどころがデメリット、負債にもなりかねないケースがある

と考えた時に、GAE/Jって何が良いの?と言われると、過去の重量級なコードを捨てられる事、知識という資産だけを継承し最新の設計思想を活かして1から作れることが実はGAE/Jのメリットじゃないか?

Google自身も実行環境と言語としてJavaを使いつつ、JavaEEのような重量級の仕様にはなるべく触れないようにしてるようだ。

で、そういうWeb開発は速さ命なので、リスクを避けるあまりに手続きコストが高く柔軟性のない外注よりも、内製の方がトータルコストが低いだろうなーと思う。というわけで、内製回帰しようぜという無理やりな結論で終了。