メイン

012 - ruby アーカイブ

2007年07月10日

今後のJavaはEEよりSEに注目か

最近、皆さんはJava EE(Enterprise Edition)の新バージョン、例えば、Java EE 5とか、Java EE 6に、どれだけの興味を持って注目しているだろうか。もはやコミュニティ主導で進化する中、Java EE仕様は完全に、追いかけられる側から、追いかける側に回った感がある。ラボの他のメンバーも自身のブログ(kimada)に記載しているが、今さらJava EEの中で仕様化することに、どれだけの意味があるのだろうか。逆に混乱を招かなければ良いのだが...。

かと言って、Java EEのコミュニティ主導のスペックにも、その威力と影響力が薄れてきている感がある。Javaが、定住化する中で、それぞれが成功体験と成功パターンを蓄積してきているわけで、その尺度との比較で、冷静に、かつ、賢く物事を測ることが出来るようになってきたということだろうか。あるいは、皆と同じようにやっていても競争に勝てないので独自の工夫を凝らし始めたからだろうか。一部では、「ブルーオーシャン戦略」って用語までも飛び出して来ているようなので...。(この件に関しては、いつの日か弊社のBlendの思想について語る機会を頂くことにしよう。)

それよりも、私の中では、Java SE(Standard Edition)の進化への興味が増している。これは多分にRubyの影響が大きいのではあるが...。Java SE 5としては、GenericsやAnnotationなど、大幅な仕様拡張が行われたのは記憶に新しいだろう。個人的には、Annotationに大いに興味があるし、上手に使いこなしたい(乱用ではなく上手に...ね)と思っている。これまた他のメンバーのブログ(hisama2)で記載されているが、クロージャなど、まさに今後のJavaは言語的な進化がテーマなのであろう。そうでないと、今のJava EEも乗り越えられない壁にぶち当たっているようにも思える。

追記:
この記事ではチームメンバーのブログ間の相互の関連付けを行ってみた。以前のブログ記事でも記載したが、相互作用により生まれてくる何かに期待したい。インターネットWeb 2.0の世界ではそれが普通なのだから。


2007年07月05日

「Beyond Java」と茹で蛙

先日「JavaからRubyへ」って書籍が出版されましたが、実はその前編とも言える「Beyond Java」っていう名著があります。残念ながら、こちらは日本語翻訳版(注1)は出版されていないのですが、英語原本で良ければ購入できます。「JavaからRubyへ」はどちらかと言うと、マネージャー向けに書かれているようですが、「Beyond Java」はJavaを一通りマスターしたプログラマーに是非読んでもらいたい内容です。文章にセンスがあって、例え話もとても面白いです。私の超お勧め本です。

内容はJavaの先に見えるプログラミング言語の洞察などが中心となっていますが、第一章に「茹で蛙(Boiling Frogs)」の例え話が出て来ます。この茹で蛙の例え話は、別にJavaに限ったことわざではなく、熱湯に蛙を入れると逃げ出すのに、ぬるま湯につけられて徐々に温度を上げられると熱いと思ったときにはもう手遅れで致命的だよ注意しな、って話ですが、これが実にJava技術者の現状をうまく比喩表現出来ている気がします。特に我々のような一歩先を歩まねばならない会社にとっては死活問題でもあります。もちろん、まだ沸騰するほどお湯の温度は上がっていないですし、今後、どうなっていくかは分かりませんが、周りの温度のチェックだけは怠らないようにしないと行けないステージに入ってきた感はありますね。先日の「JavaとRubyを」のブログ記事も参考にして見て下さい。

(注1) あまりに素晴らしい内容なので、出版社の方に、日本語の翻訳版を出版して頂けないかとお願いをして見ました。現在、真剣に検討頂いているようで、ひょっとしたら翻訳版が出版されることになるかも知れません。

2007年06月26日

「JavaとRubyを」

JavaからRubyへ」って書籍がありますが、私からはそれにちなんで「JavaとRubyを」ってことで一席。

そもそも、なぜ今、Ruby/RoR(Ruby on Rails)かってことですが、はやりJavaの行き詰まり感が背景にあると見ています。それが仕様の混乱と乱立の結果なのか、あるいは、スペック(仕様)主導の功罪なのか、いろいろな解釈があると思うんですけど。何を言ってるかと言うと、例えば、気持ち的には、もう以下のような感じ。

1. J2EE仕様
特にEJBか。JMSのAPIもイマイチ。デプロイメントとか。他にも指摘しだすと切が無いか。

2. コミュニティ仕様
Struts仕様、Spring仕様、Hibernate仕様みたいな。これもオーバースペック。
初期Strutsはまだしも、他は技術的に懲り過ぎってか、ちょっとやり過ぎだろう。

3. ベンダー仕様
ベンダーの独自仕様のこと。これはある意味仕方が無いので責めはしないが。

ってこと。私的には、もういい加減にしろって怒鳴りたくなる。それに何事にも技術的に懲り過ぎなのは良くないよね。これじゃあ、生産性の向上どころか、益々悪くなるってことで、鮮烈に登場したのがRailsなんでしょう。まあ、Railsに限らず、もやはJavaから学ぶものはなく、Javaは他の分野から学んでいかなくては進歩しないってことを、Javaの技術者自身が気付いて行動する必要があるように思うのです。だから今、「JavaとRubyを」ってことがお勧めなんです。

そこで、Ruby/RoRですが、単純にRailsのデモ見て凄い生産性ってことではなくて、本質的な視点というか、もっと突っ込んだ洞察で捉えて欲しいですね。なぜ、RailsがRubyを選んだかって、やはりJavaでは出来ないRubyの動的型付けと強力なメタプログラミング機構にあるのでしょう。Railsみたいなことは、Rubyのような言語仕様じゃないと実現出来ないし、逆にRails並みにRubyを上手く使いこなさないと、Rubyを使う意味が無いというか逆効果と言えるかも知れませんね。それと、Ruby/RoRには先進性というか、Beyond Javaの潜在性みたいな空気が感じられて、Java界の優秀民族の一部が住居の移動を始めちゃったりもしていますね。ただ、もちろん、すべてがバラ色な訳では無く、Ruby/RoRも、今後、信頼性や性能、高度で自由過ぎるRuby言語仕様、RoRの実践での適用性とか...などの課題が山積みではあります。

JavaとRubyに関してはいろいろな見解はあると思うのですが、確かなのは、今、Java系技術者(会社)が最も注目し、また、必ず押さえておくべき必要のあるテーマ、それがRuby/RoRだと言えるし、1コンサルタントとしてそれを推奨する。Ruby/RoRを本質的に押さえることにより、Javaの良い点・悪い点が見え、現状改善に繋がるはずである。つまり、JavaとRubyの相乗効果を狙うべきだと思っている。

と言うことで、「JavaからRubyへ」とか「JavaかRubyか」ではなく、「JavaとRubyを」って落ちでした。

追伸:
弊社のラボでは、Enterprise向けRuby/RoRの活用へ向けての研究活動に取り組んでいます。題して「Enterprise Ruby」。これに関しては、またの機会に書きますね。



About 012 - ruby

ブログ「khara@fmsc's weblog」のカテゴリ「012 - ruby」に投稿されたすべてのエントリーのアーカイブのページです。新しいものから過去のものへ順番に並んでいます。

前のカテゴリは011 - javaです。

次のカテゴリは015 - vmwareです。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type 3.35