2002/7/16

Eclipse 2.0以前、フリーのJava統合開発環境(以下IDE)であるForte for Java Community Edition(以下Forte)を紹介した

フリーのJava統合開発環境のもうひとつの主力に今回紹介する「Eclipse」がある。Forteは実際にはSunの商用ソフトであり、Community Editionはその無償版である。そのForteのベースとなっているのは、実はNetBeansというオープンソースのIDEである。Eclipseもオープンソースとして開発されているので、Forteと言うよりはNetBeans v.s. Eclipseという図式の方が正しい。ただ、日本語版が正式に提供されていて利用しやすいことなどから、日本ではNetBeansよりForteの利用者の方が多いだろう。

さて、そのEclipseであるが、使ってみて最初に感じるのがネイティブアプリケーションであるが故の軽快な動作だ。Forteは以前の紹介でも書いた通りGUIにJavaのSwingを使っているため、少々重さを感じるのが難点だ。Javaアプリケーションにしては快適なソフトだが、Eclipseと比べるとやはり厳しい。GUIの機敏性ではEclipseに軍配が上がると言っていいだろう。ネイティブアプリケーションとして作られたJavaのIDEはVisualCafe以来だろうか。IDEとはその名の通り「環境」である。IDEにとってストレスを感じさせない軽快さは重要な要素だと言える。

2002/12/3 補足:「ネイティブアプリケーション」と書きましたが、正確ではありませんでした。中身はJavaアプリケーションです。しかしGUI部分はSWTというネイティブ動作の高速なコンポーネントが使用されているため、ネイティブアプリケーションに匹敵する軽快な動作を実現しています。

GUIはカスケードウィンドウのスタイルではなく、各ウィンドウがタイル状にレイアウトされる構成になっている。同じ表示がいつも同じ所にあるので、大変視認性が良い。しかしこれは好みの問題もあるだろう。

英語版のため最初は戸惑ったが、慣れてくるにつれ、Eclipse素晴らしさが分かってくる。まだ一部しか使いこなしていない私でも特に便利だと感じているのは、コーディング補助系の機能だ。コードの自動生成については、他のほとんどのIDEにも備わっているクラステンプレートの生成や、アクセサメソッド(getter/setter)の生成はもちろん、コーディングの途中からメソッドやコンストラクタの継承コードを生成する機能もある。これは親クラスのソースやドキュメントを見なくてもすぐに作業ができるので大変便利だ。また、import文を自動的に整理することもできる。この機能を使うと必要なクラスだけをimportするように修正してくれる。この機能を使用したソースコードは、どのクラスがimportされているのか一目瞭然になる。

エラーの自動修正機能も便利だ。import文などは、わざと書かずにいきなりクラスを使っておき、自動修正でimport文を自動的に追加させることができる。よくimportするパッケージがよくわからず、自分で調べなくてはならないことがあるが、Eclipseでは不要だ。また、例外が発生する処理を書けば、自働でメソッドにthrows節を追加してくれたり、try〜catchブロックを追加してくれたりする。さらに、スペルミスを直してくれたり、存在しないメソッドを生成してくれたりと、かなりの作業を勝手にやってくれる。Eclipseは比較的動作が軽いわりには、コンパイルエラーをリアルタイムで検出しているというのもすごい。

もうひとつ重要なのがリファクタリング機能だ。最近XPという開発手法の流行にともなって、リファクタリングという手法が注目されているが、そのリファクタリングの一部を自動的にやってくれるのだ。リファクタリングの原典であるマーチン・ファウラーの「リファクタリング」という本の項目と対応するのは、メソッドの移動、フィールドの移動、自己カプセル化フィールド、メソッドの引き上げ、メソッドの抽出、一時変数のインライン化、といったところ。本のほうには出てないが、変数名の変更や、ローカル変数の抽出(一時変数のインライン化の逆。本では「説明用変数の導入」かな?)もできる。規模の大きいプログラムでのリファクタリングは大変な作業である。これを自動でやってくれるのはありがたい。特に変数名などを後から簡単に変更できるというのは便利だ。Eclipseを使えば、リファクタリングという優れた手法を簡単に実践できるのだ。リファクタリングが簡単にできてしまうと「あとで変更するのは大変だから、最初に慎重な設計をするべき」という考え方が薄れてくる。

Visual Basicでメソッド名の候補一覧が出るようになったとき、この機能は手放せないと感じたものだ。Eclipseにはその時のようなインパクトが詰まっている。IDEの価値はデバッガやGUI設計だけではない。Eclipseは「コーディングのためのIDE」である。手放せないツールになりそうだ。