いよいよEclipse3.6(Helios)がやってくる。

後数時間でいよいよEclipse3.6(Helios)がやってきます。(ただいまFriends of Eclipse権限でダウンロード中)今回のリリースでは、39個のプロジェクトが同時リリース。そして初めてe4も同時にリリースです。e4については、後日レポートします。(がんばる)簡単に触れると、e4は、Eclipseの次期バージョンを目指し、開発が進んできたIDEです。Eclipse Platformの開発にて、初めてコミュニティが主体になって進めてきたプロジェクトです。新たな開発プラットフォームとなるべく開発が進んでいます。Eclipse 3系の中心のorg.eclipse.uiはかなり巨大なBundleに成長してしまいました。その中でも特に重要なクラスであるWorkbenchクラスの実装コードは5000行(!)近く、改善を加えるにも結構限界があったんではないか、と思われます。e4では「Web to Desktop, Desktop to Web」というスローガンもあり、XWTという言語でUI設計用の言語が用意され、CSSによるデザインのカスタマイズ、JavaScriptによる拡張のサポート等、ブラウザを意識した技術がふんだんに使われています。(e4ネイティブなDIなんかも用意されています。)簡単に、と言いつつ、結構書いてしまいましたね。それでは本編にいきましょう。

Eclipseの配布形式がさらに増えた。

のっけから「何言ってんねん」というツッコミが入りそうです。Eclipseは確かGanymede(3.4)くらいから、用途毎に配布形式を用意しています。Javaの開発環境とJ2EEの開発環境を別々に用意しているんですね。違いはWTPDTPくらいだったかと思うんですが、Javaの開発がしたいだけなのに、Webの開発環境が入っているのがうっとおしい、という開発者がきっといるのではないか、というのがEclipseプロジェクトのとる立場です。確か何でも入りだと思われるNetbeansとは大きく違うところですね。

HeliosリリースではGalileoからさらに「Eclipse IDE for JavaScript Web Developers」がどのプラットフォームにも追加されました。また個人的に特に衝撃(笑劇?)だったのが、Linux環境用のパッケージをダウンロードしようとすると、「Eclipse IDE for C/C++ Linux Developers (includes Incubating components)」なんて環境があるじゃないですか。とうとうLinuxの開発環境として、Eclipseが使われる時代になったのか、という感じです。

ちなみに動作確認プラットフォームとして、Windows 7Ubuntu 10.04が加わりました。

Eclipse Marketplaceとの連携

以前Eclipse Plugin Centralという名で運営され、eclipse.orgから直接リンクされていたプラグインの紹介サイト、昨年12月にがらりとコンテンツが変わり、Eclipse Marketplaceが変わりました。

このサイトに登録されているプラグイン、RCPは、Eclipseに簡単に追加できるようになりました。下記のようにHelp -> Eclipse Marketplaceを選ぶと・・・

次の画面が表示されます。

それで、例えばQuick JUnitを検索してみると、

なんと、その場でインストールができます。Quick JUnitだけでなく、JAM Circleも公開しているので、ぜひ導入してみてください。

JDTの改善

Eclipseを利用している開発者の多くはJavaの開発者の方だと思うので、JDTの改善点を見ていきましょう。といっても細かな改善が多いので、「これは!」という点にしぼって紹介します。細かい改善を全て眺めたい場合は、Helpの中に"What's New"というページがあるので、それをご覧ください。

公開されているWhat's New

Javaのコードスタイルやコンパイラの設定の共有

コードスタイルの設定の共有は以前からできると思うのですが、ファイルにより細かく区分けしてエクスポート/インポートできるようになりました。コードスタイルだけ共有しやすくなりましたね。また、コンパイラの設定もエクスポート/インポートできるようになりました。

実はコードスタイルの設定は、ものすごい自由にできるようになっているんですが、どれを設定するといいのか、いまいちつかめ切れなくなっています。実は3.5から”Never join lines”という設定が加わっていました。どういう事かと言うと、引数が多くて一行にまとめると見づらい時など、適宜改行を加えていたかと思うんです。

でもコードフォーマットをすると、一行にまとまって、イラっとしていたのが、この設定で回避できるようになってました。

メソッドの外部化の機能強化

for文の中などで、continue句を使っているとExtract Methodできませんでしたが、return句に置き換えてメソッドの外部化が行われるようになりました。

また、複数の変数に値を返さないと結果が変わってしまうようなリファクタリングは、どの変数に影響がでるのか、分かるようになりました。

長ったらしいパッケージ名を省略表示可能に

PreferenceのJava > Appearanceを開くと、パッケージ名の省略表記の設定画面を設定できるようになりました。

設定してみると、下記のようになります。

デバッガでインスタンス数をカウント

JavaSE-1.6を使ってるユーザは、Valiablesビューから同じタイプのインスタンスがどれだけあるのか、見えるようになりました。

同梱されるJUnitが4.8.1に

地味にうれしい。

Eclipse Platformの改善

この辺からちょっと深い話にいきましょうか。

weavingのサポート

OSGiコンテナであるEquinoxのバイトコードへのウェービングがサポートされました。要するに、EquinoxでのAspectJのサポートが始まった、ということみたいです。Spring RooなんかはフルでAspectJを活用したプロダクトなので、そういうものと組み合わせられる目が出てきた、ということです。(AspectJとかは門外漢なので、詳しくは述べません。)

LinuxのBrowserコンポーネントWebKit

WebKitGTK+が導入されている環境では、Mozillaレンダリングエンジンを使わないで、WebKitが使えるようになったようです。3.7ではWebKitをむしろ標準のコンポーネントにする動きがあるみたいです。クロスプラットフォームWebKitがサポートされたらすごいですね。

Skinエンジンサポート

e4のみのサポートだと思い込んでいたんですが、Eclipse3.6でもCSSによるスキン機能が着いているようです。

タスクアイテムのサポート

Windows 7OS Xのドック上のアイコンに、状態を色々表示できるようになりました。


メニューバーなんかも表示できるので、RCP開発者は活用したいところです。

稼働中のEclipseOSGiコンソール

稼働中のOSGiコンソールが覗けるようになりました。RCP開発者だと、Declarative Serviceで登録したはずのサービスが動いてなさそうだ、と言う状態に気軽に覗ける手段が増えた事になります。

Unixファイルパーミッション設定

Eclipse上からパーミッションの設定ができるようになりました。

ヨーロッパからのコントリビュート

最近のEclipse Projectの動きを見ていると、どうもEU(特にフランス)のコントリビュートが激しいです。ヨーロッパにとって、ソフトウェア開発とは科学である、という話を聞いた事があるのですが、EMFをベースとして開発されてきたプロジェクトであるPapyrusやAcceloなど、新たにEclipse Projectとして参画しています。これらのツール群はじっくりと着実に作り込まれてきたため、非常に高機能です。(使い勝手には難があるようですが。)

以上ガッとレポート(というか、ほとんどWhat's newからの引用ですいません。)を書いてみました。ではー。

6/27 追記
id:torazuka先生が、素敵なEclipseたんのスプラッシュ画面を公開されています。ぜひそちらもご覧ください。
スプラッシュ画面の変更方法は簡単です。eclipseのインストールフォルダにeclipse.iniファイルがあると思います。そちらを開いて頂き、

-showsplash
 ../Resources/splash_eclipse-tan_helios.bmp

という感じで-showsplashの下にある一行を、スプラッシュ画像へのパスに修正してください。Macをお使いの方は、Eclipse.appを右クリックすると、下記のメニューが開かれると思います。

このパッケージの内容を表示を選ぶと、中にContentsというフォルダがあると思います。このContents/MacOSと開いていくと、中にeclipse.iniがあります。僕はResourcesフォルダの下にスプラッシュ画面のbmpをしまっているので、上記のパスになっています。

そしてトラックバック頂いた皆様、ありがとうございました。トラックバック先の情報もとても参考になるので、こちらに列記させていただきます。(ごめんなさい。ブックマークやtwitterのログは趣旨から外れるので、省かせていただきます。)
まずJiemamyの開発者であるid:daisuke-m先生のEclipse 3.6 Helios × Subversive - 都元ダイスケ IT-PRESSSubversionのプラグインであるSubversiveをお使いの方はぜひご覧ください。
続いてPleiadesやJStyleの開発者であるid:cypher256先生のHelios 3.6 日本語化 Pleiades All in One ダウンロード - C/pHeR Memo - Java とか。Eclipse とか。。Pleiadesのリリースアナウンスです。
3つ目はAmateras UML等の開発者であるid:takezoe先生のHeliosきた - 新・たけぞう瀕死の日記マイコミジャーナルで取り上げないでも、とおっしゃってますが、JavaScript Environmentとか最近テーマっぽいので、取り上げて頂いたらおもしろいのに、とか思いました。
最後にid:takahashikzn先生のHelios debut!! - R42日記。Genericsに対する@supresswarningの仕様変更が取り上げられています。

と言う事で、最後まで読んで頂き、ほんとうにありがとうございました。