Bruce Tate インタビュー

Web Developers Moving Past Java(Web Services Summit)。軽快な JavaBeyond Java の著者である Bruce A. Tate 氏へのインタビュー記事です。

以下、流し読みをして目についたところ。

  • Java はかつての COBOL のように死を迎えるだろう
  • ただ、スケーラブルな O/R マッピングや2フェーズコミットといったエンタープライズ向け機能によって、少なくとも3〜5年は安泰だ
  • Ruby on Rails にとても注目している
  • Java でライトウェイトな開発を行うには、Servlet、XML、Struts に加えて Hibernate や iBATIS といった永続化フレームワーク、そしてそれらを結合する Spring について理解する必要がある
  • Ruby コミュニティは問題解決の際により実践的(pragmatic)であろうとする
  • Java コミュニティは問題解決の際に最も難解な10%の部分に心を奪われる。それが使われることのない解決策だったとしても
  • 私の顧客向けに開発したアプリケーションでは Java で 1000 行だったコンフィギュレーションが Ruby では 100 行で済んだ
  • Java では POJO や AOP によってメタプログラミング的なアプローチが行われている
  • Ruby や Python、Lisp、Smalltalk などではメタプログラミングが Java に比べてとても容易だ
  • 実際、Java で生まれた DI コンテナはこれらの言語でも用意されているがほとんど使われていない(AOP も同様)
  • Ruby などの言語では DI コンテナや AOP は必要ないので、解決すべき本来の問題に注力できる
  • PHP は quick で dirty だ(VisualBasic や Perl も同じ)
  • quick and dirty に興味はない
  • 今は Ruby on Rails の model-view-controller のような quick and clean に興味がある
  • ユニットテストによって動的な型に関する問題のいくつかは解決できる
  • Java は Ruby よりもコードの規模が大きくなり、より多くのコードがテストされないままとなりがちである
  • 静的型付け言語はシステムプログラミングには適しているが、生産性の高い言語はどれも動的型付けである(VisualBasic、Python、Ruby、Perl、SmallTalk など)
  • パフォーマンスのボトルネックは多くの場合データベースであり、Ruby on Rails のようにうまくスケールしたり、JIT コンパイルがあれば動的な言語でもネックにはならない
  • Groovy は、一貫したヴィジョンに乏しく kitchen-sink なものにすぎない
  • 私が Beyond Java のためにインタビューした言語のエキスパートたちは皆、Groovy を嫌っている
  • 今日のエンタープライズ Java アプリケーションはコンフィギュレーションが複雑すぎる
  • Java 以外の言語ではデータをハッシュなどに格納することが容易だが、Java はデータの表現力に乏しいのでデータが XML に落とし込まれている。これを解決するのは難しい
  • Spring は今でも気に入っている。XML は複雑だが POJO によってビジネス層のプログラミングに集中できるので、Java には欠かせない
  • AOP はメタプログラミングのためにも Java にとっては重要なものだが、動的言語には不要だ

p0t, 10 月 27th, 2005 at 10:55 [Trackback]

ブルース・テイトが言っていた

BMediaNode: Bruce Tate インタビュー Web Develo…

p0t, 10 月 27th, 2005 at 10:56 [Trackback]

ブルース・テイトが言っていた

BMediaNode: Bruce Tate インタビュー Web Develo…

ogijunの日記, 11 月 2nd, 2005 at 15:34 [Trackback]

[Java] Moving Past Java

Bruce Tateのインタヴュー。けっこう強烈。 PHP者であるBMediaNodeさんが強烈なとこを抜き出して抄訳してくれてるからこっちだけ読めばいいや。 JavaのCOBOL化を話題にする人がJava側から出てきたのは時代が進んだということかなあ。 …


使用可能なタグ <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>