【レポート】

JavaOne Tokyo 2005 - 自動化、心掛けてますか? 貴重な時間は大切に

4 小さいことの積み重ねで変革を

    大野晋一  [2005/11/10]

    同氏が説明した開発効率の向上はその多くが「サイクルを短くする」という言葉で説明できる。エディット -> コンパイル -> デバッグのサイクル、check-in -> テスト -> 退行バグの発見のサイクル、これらのサイクルを短くして回転を早くすることで生産性を向上させようというわけだ。同氏はこの効果として、単に時間が短くなるだけではなく、大胆な変更をもっと簡単に、気軽に行えるようになると説明する。また、単純作業を自動化することで複雑な、本当に人の頭を使う必要のある問題にデベロッパが集中できるようになる。同氏は「ちまたにはagile developmentと呼ばれているもはここからはじまるのでは?」と述べる。エンタープライズのチーム開発でagileの実践はなかなか難しいかもしれないが、同氏が挙げたようなことは実践も現実的かもしれない。

    「自動化自動化これまた自動化」。川口氏は最後にこう述べ、どんなに小さな無駄も見逃すべきではない。小さいことの積み重ねが生産性を上げる、と常に生産性に注意をはらう心掛けが重要とした。「是非、早く家に帰りましょう。コンピュータなんかに向かっている時間はなるべく短くしてうまいものでも食べましょう」。会場は川口氏のジョークに沸いていた。ところで、このセッションのタイトルは「定時退社のためにJava」なのだが、川口氏は定時に帰れているのだろうか…… 未踏のプロジェクトも抱え、JAXBなどにも関わる川口氏は実際のところかなり忙しそうなのだが。

    これぞ、三大美徳のJava版?

    川口氏の話は、Perlの生みの親であるLarry Wall氏の「プログラマの三大美徳」を思い出させる。これはLarry Wall氏の著書"Programming Perl"(Larry Wall/Tom Christiansen/Jon Orwant, Third Edition July 2000, O"Reilly, ISBN: 0-596-00027-8)に書かれた有名な一節で、"We will encourage you to develop the three great virtues of a programmer: laziness, impatience, and hubris."(プログラマの三大美徳は怠惰・短気・傲慢である。是非これを身につけてもらいたい)というもので、laziness/impatience/hubrisはそれぞれ巻末の用語集にまで登場し、その重要さが詳しく解説されている。この三大美徳はハッカー文化の生み出したもの、という気がするが、Javaコミュニティには意外とこういった気概が欠けているのではないだろうか。

    J2SE 5.0時代のJavaはEoD(開発の容易さ)をキーワードとして生まれ変わった。しかし、いくら言語やフレームワークレベルでの改善が進もうとも、チーム開発や日常の業務においてJavaデベロッパ自身が変わらなければ、効率化は進むわけがない。もちろん、一部の開発者を中心としてagileなど変革の動きは既に出てきている。しかし、大多数のJavaデベロッパはどうだろうか?

    真剣に考えてみて欲しい。

    • J2EEはDIやAOPの源流ともいえるものを多く持ちながら、どうしてJava EE 5の時代までそれを活かす方向に進化できなかったのだろうか?
    • どうしてEJBはパーシステンスに専念せず、実際に使われない分散環境を指向してしまったのだろうか?
    • Ruby on Railsでいとも簡単にできることがどうしてJavaでは複雑なのだろうか?
    • LispやSmalltalkでたやすくできるメタプログラミングがどうしてJ2SE 5.0のAnnotationまで実現されなかったのか?
    • エンタープライズJavaのコンフィギュレーションはどうしてこんなに複雑なのか?
    どれもかつてのJavaが抱え、一部は未だに解決されずに残っている問題だ。Javaはこれまでなぜか難解な方向に進みたがり、実践的な解決を志さなかった。

    SunをはじめとするJavaベンダがこうした問題のうち多くを解決してきたことについては、もちろん大きく評価するべきだろう。後方互換性を保ち、かつ標準規格としてJavaをここまで便利にしてきたJCPの払ってきたコストも多大なものだ。その一方で、Rubyをはじめとした後発の言語の出現に一部の先進的なJavaデベロッパが不安を覚えていることも確かだ。Javaが第二のCOBOLになってしまうのではないかという声も大きい。

    こういったことをJavaのせい、もしくはJ2EEの巨大化を図ったベンダのせいと言ってしまうのは簡単だ。しかし、根本的にはJ2EEを使う大多数のデベロッパがその要求を声に出さなかった、もしくは本当の要求を認識できなかったことこそが原因ではないだろうか。JCPもJ2EEベンダもデベロッパありきでJavaテクノロジを進化させようとしているのだ。

    EoDを確実な成果に結びつけるためにもデベロッパひとりひとりが、いわばハッカー的な気概を持ってJavaを成長させる必要がある。そしてそれは難しいことではなく、小さなことの積み重ねだ、と感じさせられた。まずは川口氏に倣って、こうなればいいのに、こうなるべきという要求をJREのバグとしてファイルすることから初めてみてはいかがだろうか?

    オープンソースコミュニティでは上で示したJavaの問題に対して既に多くの解決方法が示されつつある。さらに、Java SE 6.0 "Mustang"世代では、我々デベロッパが開発に参加することが許されているのだ。デベロッパひとりひとりが問題を認識して改善の声を上げることで、Javaが第二のCOBOLとして廃れるのを避けることが出来ると願いたい。

    関連記事

    リリースまで1年、Java SE 6"Mustang"の概要を一足早く把握する [2005/8/16]
    JavaWorld Day 2005 - ロッド・ジョンソン氏の語るJ2EEの抱えてきた問題とこれから [2005/6/21]
    Lightweight Language Day and Night - Sledge/Ruby on Rails/Kahua Lightweight Languageのウェブフレームワーク [2005/8/29]
    アノテーションでO/Rマッピングを記述する - Hibernate Annotator公開 [2005/8/19]
    EJB 3.0をいち早く学ぼう - Webアプリの新技術を教えるJBoss TrailBlazer [2005/6/29]
    JSFとEJB 3.0を統合 - JBoss Seam 1.0 beta 1 [2005/9/20]
    J2EEでもEoD - EJB 3.0対応JBoss、JavaOneにあわせて登場へ [2005/6/23]
    最新の技術を投入、Seasar 2.3 公開 - Persistence APIとJSFの実装も新たに [2005/11/8]
    オープンソースのJavaクラスライブラリ - GNU Classpath 0.19公開 [2005/11/4]
    Sun、開発コミュニティに "Java 6" セキュリティ機能の問題発見を求む [2005/11/1]
    Eclipse 3.1リリース - J2SE 5.0をフルサポート [2005/6/29]
    JavaOneに見るJava EE 5 - Persistence APIがEJBから独立 [2005/6/29]
    Sun、Java System Application Serverをオープンソースに [2005/6/28]
    J2SE 5.0/EJB 3.0に対応 - Oracle JDeveloper 10g Release 3 EA1 [2005/9/20]
    JetBrains、Java統合開発環境 IntelliJ IDEA 5.0公開 [2005/8/2]
    JSF/Struts/Hibernate/SpringサポートのJava IDE - Exadel Studio Pro 3.0 [2005/8/3]
    J2SE 1.3/1.4でJava 5のAnnotationを実現 - backport175 1.0公開 [2005/6/17]
    手を握るStrutsとSpring、今後の行方は [2005/10/17]
    J2EEアプリ生成ツール JAG 5.0 - Spring/Hibernate/Annotationなどサポート [2005/9/20]
    J2EEコンポーネント開発ツール - IBM Workplace Designer 2.5公開 [2005/8/25]
    BEA、KodoのSolarMetricを買収 - WebLogicでJDOを提供、パーシステンス強化 [2005/11/4]

    関連サイト

    新着記事

    特設サイトの情報

      求人情報

      人気記事

      一覧

      イチオシ記事

      新着記事

      特別企画

      転職ノウハウ

      あなたの仕事適性診断

      4つの診断で、自分の適性を見つめなおそう!

      Heroes File ~挑戦者たち~

      働くこと・挑戦し続けることへの思いを綴ったインタビュー

      はじめての転職診断

      あなたにピッタリのアドバイスを読むことができます。

      転職Q&A

      転職に必要な情報が収集できます

      スカウト転職する

      企業からアプローチのメッセージが届きます。

      マイナビニュースマガジン