Eclipse:新しい開発環境モデルの誕生:安藤幸央のランダウン(17)
「Java FAQ(What's New)」の安藤幸央氏が、CoolなプログラミングのためのノウハウやTIPS、筆者の経験などを「Rundown」(駆け足の要点説明)でお届けします。(編集局)
Javaの浸透とともに開発者の数も圧倒的な勢いで増えてきています。それに伴いJava開発環境、統合開発環境、各種ツールなども数多くリリースされ、プログラミング環境も着々と整ってきています。
もともとJavaの最低限の開発環境(SDK)は無償で手に入り、手軽にプログラミングに手をつけ始められるのがJava普及の追い風となりました。昨今では、市販のJava開発ツールだけでなく、高品質な無料の開発ツール、オープンソースの開発ツールの台頭が目立ってきました。
今回はその中でも多くの企業が参加しており、JCP(Java Community Process)などでも開発技術関連の企画策定のけん引力にもなっているEclipse Projectを紹介しましょう。
Eclipseの使い方などに関しては、@ITでも多くの記事が掲載されています。ここではEclipseがすぐに使いたくなるようなRundown的(駆け足の要点説明)でエッセンスを紹介していきましょう。
プラグインで必要な開発環境を手に入れるモデルが斬新
Eclipseの魅力の1つは、プラグインで開発環境を便利に拡張できることにあります。Eclipse自体は開発環境のプラットフォームです。それ自体にはコードを書くためのエディタなどの基本的な機能しか用意されていませんが、Eclipseはアーキテクチャが公開され、プラグイン開発用のSDKが用意されているため、自分のニーズに合ったプラグインを作成し、Eclipseの機能を拡張して使うことができます。
すでに多くのプラグインが開発され、2003年2月の時点で238ものプラグインが登録されていることからも、その勢いの度合いが推し量れるでしょう。
プラグインは、そのすべてを使う必要はありません。自分の開発スタイルに合った、開発作業を煩雑化させている部分をプラグインの助けを借りることによってより作業の効率化が望めるのです。
Swingよりも軽量で優れたGUI、SWTの成果
EclipseのGUIにはSWT(Standard Widget Toolkit)が使われています。SWTは、OSに依存しないでGUIを実現するSwingとは対照的に、OSネイティブで動作するGUIライブラリです。OSに依存する一方で、高機能なGUIを実現でき、かつ、軽量、高速に動作することが特徴であり、大きなメリットです。
SWTはOSネイティブな実装のため高速で動作します。また、OS固有の見た目に即したインターフェイスデザインを持っています。これらのSWTの利点を生かしたいくつかのツールやアプリケーションがすでに作られています。
Javaで、高速で大規模なグラフィカルユーザーインターフェイスを作成する必要に迫られた場合、SWTは1つの回答かもしれません(現在はWindows、Linux、Solaris、AIX、HP-UX、MacOS Xに対応)。
Eclipseは新しい開発スタイルも啓蒙
Eclipseには数多くのプラグインがそろっているだけでなく、もう1つの大きな特徴があります。単なる開発ツールとしてだけではなく、さまざまな開発スタイル、開発のための方法論を取り込んだ形で進化していることです。
例えばSangamはXP(eXtreme Programming)のペアプログラミングスタイルを実現するためのプラグインです。ペアの2人のうち、どちらが主・従でプログラムを進めるのかを切り替えたり、コードレビューの際にチャットを活用することもできます。隣り合った近い位置にいるペア同士でなくとも、ネットワークを介して離れた場所にいるペア同士でもペアプログラミングを実現できるのが大きな特徴です。
Omondoの提供しているUMLプラグインはオブジェクト指向に基づいた設計のモデリング表記方法の1つでUML(Unified Modeling Language)用のものです。モデリングの結果をソースコードに反映し、相互に活用したり、モデリングの形式をSVG形式の図として出力することが可能です。XSD(XML schema infoset model)や、MDA(Model Driven Architecture:モデル駆動開発)に対応したEMF(Eclipse Modeling Framework)に基づいたプロジェクトも進行しています。
Eclipseの今後、ロードマップ
Eclipse ProjectにはJava関連の多くの企業が参画し、サポートを表明しています。
今後はJava言語だけでなく、C/C++言語や、COBOLでも使えるような改造を行うプロジェクトや、コラボレーションやソフトウェアモデリングツールなど、さまざまな開発スタイル、ツールを取り込んで進化していくようです。
統合開発環境を用いることによって、開発効率が増す一方、ツールが自動的に生成してくれる不可解なコードに戸惑うこともあるかもしれません。プラグインがどのような働きを行っているのか、中身を知ったうえで活用するのが得策でしょう。
Eclipseには不便だと思うことや、煩雑な操作手順を便利にするプラグインが数多くそろっています。効率がよい悪いで、作業のスピードや、ストレスの度合いなどが大きく違うのではないでしょうか?
慣れた開発環境にこだわって使い続けるのも1つの道ですが、何かのきっかけで、新しく便利な開発環境を使い始めたり、いままで不便に思っていた部分にプラグインを組み込み効率よく使うという柔軟性も開発者にとって必要な資質だと思われます。
■Eclipseの主なプラグイン
- V4ALL(AssisiEclipseGUI-Designer): GUI構築プラグイン
- Transclipse:JavaソースからHTMLへの変換プラグイン
- CodeBeamer:タスク・バグ管理用プラグイン
- Lomboz:J2EE用プラグイン、JSP用のツールが完備
- SQLBrowser:DBブラウザプラグイン
- X-Men:XMLファイルを便利に扱うためのプラグイン。log4Jの出力などに最適
- CallHierarchyView:メソッドとクラスパッケージの対応を表示するプラグイン
- jMechanic:プロファイリングプラグイン。チューニング、ボトルネック発見に
- CVS-SSH2PluginforEclipse:CVSSSH2サポートプラグイン
- WOLips:WebObject開発用プラグイン
- Sangam:XPプログラミング用のペアプログラミング対応プラグイン
- Lunar:RMI用スタブ・スケルトン自動生成プラグイン
- Spindle:WebコンポーネントJakartaTapestry対応プラグイン
- Sysdeo:Tomcat起動プラグイン。Tomcatの起動、クラス設定が可能
- MockCreator:Mockオブジェクトインターフェイス作成プラグイン
- QuantumDB:DBアクセスプラグイン
- Solex:Webアプリケーションテスト用プラグイン
- AntView:メイクツールAnt組み込み用プラグイン
- StrutsIDEWizards:JakartaStruts用プラグイン
- JadClipse:デコンパイラプラグイン
- AttrezzoperXindice:ApachenativeXMLデータベースのためのプラグイン
- JLense:ビジネスアプリケーション用インターフェイス開発プラグイン
次回は4月23日の公開予定です。
プロフィール
安藤幸央(あんどう ゆきお)
1970年北海道生まれ。現在、株式会社エヌ・ケー・エクサ マルチメディアソリューションセンター所属。フォトリアリスティック3次元コンピュータグラフィックス、リアルタイムグラフィックスやネットワークを利用した各種開発業務に携わる。コンピュータ自動彩色システムや3次元イメージ検索システム大規模データ可視化システム、リアルタイムCG投影システム、建築業界、エンターテインメント向け3次元 CG ソフトの開発、インターネットベースのコンピュータグラフィックスシステムなどを手掛ける。また、Java、Web3D、OpenGL、3DCG の情報源となるWebページをまとめている。
ホームページ:
http://www.gimlay.org/~andoh/java/
所属団体:
OpenGL_Japan (Member)、SIGGRAPH TOKYO (Vice Chairman)
主な著書
「VRML 60分ガイド」(監訳、ソフトバンク)
「これがJava だ! インターネットの新たな主役」(共著、日本経済新聞社)
「The Java3D API仕様」(監修、アスキー)
Copyright © ITmedia, Inc. All Rights Reserved.