つい最近、弊社の役員クラスがこんなことを私に聞いてきた。それを思い出した。
僕は基本的に素人でJavaなんて全然分からないんだけど、とりあえずEclipseを入れてみてプログラムを動かしてみた。ここまではいいんだけど、DBに接続したりサーバーに接続したりすると、とたんにあーだこーだとめんどくなってしまって、挫折してしまった。Flexとかもやってみたけど、サーバーとつなぐ所で挫折した。
で、最近Ruby on Railsが簡単に出来るって言うのでやってみたんだ。そしたら、本当に1日かそこらでWebアプリケーションが出来てしまった。フルスタックとはこういうことかと。あんまりJavaと違うんで驚いた。Javaは基本的に生産性が高いとは言えないし、オブジェクト指向に長けている設計が出来ていないと変更に弱くトラブルになりやすいし、そもそもそんなJavaのスペシャリストは一握りしか弊社にはいないだろう。市場全体を見ても一握りだろう。
Rubyのシェアが右肩あがりになってきて、SunもJRubyなんて出してきたし、Javaよりもとっつきやすく難しいことを考えなくても大丈夫だよというRuby on Railsのようなフレームワークがあるんだったら、ウチの武器として使えるのかもしれないと思っているのだが、どう思う?
みなさんはこの質問にどう答えますか?
その時、自分が回答したのはこんな感じのこと。
- Javaが複雑でAll-in-Oneなフレームワークが無い*1のは全くアグリー。
- だけど、Javaで作るべきものと、Rubyで作るべきものの境目をどこにおくかを考える必要あり。
- Java資産・開発ノウハウとRubyのそれって、うまく融合できてひとつ上のやり方が出来るのかは正直わからん。
- だけれども、RubyにはRubyの得意としているエリアがあるし、Rubyならではのビジネスモデルも作れる可能性は大いにある。
- なので、どうせならやるならRubyメインの子会社作って後々吸収合併というソリューションの方がいいかもしれません。
明らかなことはSIerの主戦場にLLが入ったらどうなるのか、何が嬉しくてどんなサービスが可能になって今のSIビジネスのディフェンシブさがこんなに変るんですよ、ってを真剣に検討しなくちゃならないってことだ。
そして、この記述に非常にアグリーです。
そう,サービス提供という視点でシステムを考えれば,スピード感を持って変化する領域は必ず存在し,そこに適した技術は残念ながら現状ではJavaではない(スーパーJavaプログラマは除く)。そして,実際に変化に追随しなければならなくなったとき,それに適した道具を得たくなるはずなのであろう。
こういった意識を持っているヒトが、最近すごく増えていると感じます。
*1:S2ぐらいだと思う