.NET Tools

.NETでもEclipseを使ってみる

株式会社ピーデー 川俣 晶
2004/08/07

Page1 Page2 Page3 Page4

Java界で絶大な人気を誇るEclipse

 「Eclipse」をご存じだろうか。現在Javaの世界で絶大な人気を誇っている開発環境である。普段から.NET環境でゴリゴリ開発をされている方でも、その名前ぐらいは耳にしたことがあるはずだ。実際、Eclipseが持つさまざまな機能は、決定版となる統合開発環境の欠如に長い間悩まされ続けたJavaプログラマには福音であったらしい。入力の補完機能、強力なデバッグ環境、リファクタリング機能などを持っており、さらにプラグインによって、UMLモデリング機能をはじめ、あらゆる機能を追加できる柔軟な拡張性を備えている。

 さて、ここまで読んできて、Javaのことなど関係ないと思った読者も多いだろう。だが、少々待っていただきたい。EclipseでC#のプログラムを開発できるといったらどうだろうか。「Improve C# Plugin for Eclipse」というプラグインを使うと、C#の開発にEclipseを使用することができるのである。本稿はそのレビューである。

 ここで当然の疑問が生じると思う。本来Java用の統合開発環境でC#の開発を行うとしたら、それはあまりに不自然である。技術的に、何か無理のある方法で実現されているのではないか。そういう疑問を持つことはもっともだと思う。

 これについては、Eclipseに関して筆者の考える2つの大きな誤解のうちの1つが答えになるのではないかと思う。その誤解とは、EclipseはJava用の統合開発環境と思われているが、そうではないということである。「え、そんなばかな!」と思った人もいるかもしれないが、正確にいえば、EclipseとJava用の統合開発環境はイコールではない(もう1つの誤解は後で取り上げたいと思う)。

■Eclipseというプロジェクト

 厳密には、Eclipseとはプロジェクトの名称であって、ソフトウェアの名称ではない。Eclipse Project FAQによれば、Eclipseは堅牢で、完全な機能がそろい、商業品質で、高度に統合されたツールを開発するための工業プラットフォームを提供することを決断したオープンソース・ソフトウェア開発プロジェクトとのことである。ここにJavaという言葉は出てこない。

 このプロジェクトはさらにEclipse Project、Eclipse Tools Project、Eclipse Technology Projectという3つのプロジェクトに分かれる。Eclipse Projectは、実際の開発ツールを開発するプロジェクト、Eclipse Tools Projectは開発プラットフォームであるEclipse Platform上のツールの開発を推進するプロジェクト、そしてEclipse Technology Projectは、オープンソース開発者、研究者、大学、教育者に対して、Eclipseの発展に参加するための新しいチャンネルを提供するプロジェクト、とのことである。しかし、ここではEclipse Tools ProjectとEclipse Technology Projectのことは忘れ、Eclipse Projectに注意を向けよう。そこにこそ、誤解を解く鍵があるためである。

 Eclipse Projectは、さらにPlatform、JDT(Java development tools)、PDE(Plug-in development environment)という3つのサブ・プロジェクトに分かれるという。Platformは統合開発環境のプラットフォームとなるもので、実際にさまざまな仕事を行うさまざまなツールを入れる、入れ物となる存在である。さまざまなツールが、このPlatformの中でシームレスに連携して動作することになる。次のJDTはPlatform上でJavaプログラムを開発するためのツールである。ここまで読んで初めてJavaというキーワードが出てきた。つまり、EclipseのPlatformは、Java用のプラットフォームというわけではなく、JDTと組み合わせない限り、Javaプログラムを開発する機能は何ら持たないということである。ちなみに、最後のPDEはプラグインを開発するための環境である。

 もう1つ、重要な言葉としてEclipse SDKの意味も説明しておこう。これは、Platform、JDT、PDEの3つを1つにまとめたもので、これをダウンロードすればすぐにJavaの統合開発環境として動作するものである。通常、ただ単にEclipseといった場合は、Eclipse SDKのことを指し示していることが多いと思う。この記事でも、特に断らずにEclipseと書いた場合、基本的にEclipse SDKを意図している。

 さて、話を戻そう。Eclipse Platformは、特定のプログラミング言語に依存しない枠組みである。そこに、Java開発ツールであるJDT以外のツールを入れることはできるだろうか。それは可能である。可能であるどころか、Eclipse Project自身が積極的にJava以外のプログラミング言語用のツールの開発を推進している。例えば、C/C++の統合開発環境となるCDT(C/C++ Development Tools) Projectや、COBOLの統合開発環境となるCOBOL IDE Projectなどが存在する。

 このような状況から見れば、Eclipse Platform上でC#の統合開発環境を実現するという発想が、決してとっぴでも奇異でもないことが分かるだろう。もちろんJDTはJava用だが、Eclipse Platformはあらゆるプログラミング言語に対して開かれているのである。通常の利用者が、Eclipse(より正確にいえばEclipse SDK)を入手してインストールした場合、確かにJavaの統合開発環境として動作するが、そこに含まれるEclipse Platformはほかのプログラミング言語に対しても開かれている。

 なお、あらかじめ1つお断りを入れさせていただく。筆者は今回初めてEclipseを使ったというわけではないのだが、(Visual Studio .NETほど)使い込んでいるわけではない。それ故に、もし本文中に間違いがあればご容赦くださるとともにご指摘していただければ幸いである。

EclipseでC#の開発を可能にする「Improve C# Plugin for Eclipse」

 Improve C# Plugin for Eclipse(以下、「C# Plugin」と略す)は、EclipseでC#のプログラム開発を可能とするプラグインである。このリンク先は英語であるが、そのサイトのほかのページはフランス語の場合もあり、フランス語にはほとんど縁がない筆者にはどのような組織かは把握しきれていない。ただ、フランスの組織らしいことは推測できる。

 同サイトには、以下のようなほかのEclipse用プラグインも掲載されている。

  • Improve Axis Plugin for Eclipse
  • Improve WSDL Viewer for Eclipse
  • Improve XSLT Plugin for Eclipse
  • Improve Resin Plugin for Eclipse
  • Improve Struts Editor for Eclipse

 C# Pluginは、もちろんEclipseのプラグインであるが、その役目は主にC#のソース・コードの編集とコンパイルをシームレスに統合することにある。これはEclipseとマイクロソフトのC#コンパイラをシームレスに結び付けて動作させるものであると理解してもよい。そのような構造から当然予想されるように、これを動作させるには以下のソフトウェアが必要である。

  • Java実行環境(J2SEなど)
  • Eclipse 本体(Eclipse SDKなど)
  • C#コンパイラ(.NET Frameworkなどに含まれる)

 C# Pluginを含め、これらはすべて無料で入手できるため、これらのソフトウェアが対応しているWindowsさえすでに動作していれば、お金を払うことなく動作環境一式をそろえられる(インストールの詳細については後述している)。

 C# PluginはEclipseのバージョンによって、主に3種類の配布ファイルを用意している。最も新しいEclipse 3.0用の版は、いくつかの機能が動作しない制限があったため、この記事ではEclipse 2.0用のバージョン2.0.1を使用した(下のコラム参照)。

 C# Pluginには、具体的に以下のような機能がある。

 まず、C#コード編集の機能として以下のような項目がある。

  • C#ファイルの新規作成(基本的な構造を含む)
  • 構文のハイライト表示
  • C#キーワードの内容アシスト(キーワードを途中まで入力して[Ctrl]+[スペース]を押すとその候補が表示される)
  • 自動インデント

 また、C#コードのコンパイル機能としては以下のような項目がある。

  • タスク・ビューにコンパイル時の問題をリスト表示
  • コンソールにコンパイラの出力情報を表示
  • コンパイラの引数は個々のファイル・プロパティ・ページを通して指定

 プラグインのpreferenceページ経由のC#プラグイン・パラメータとしては以下のような項目がある。

  • マイクロソフトのC#コンパイラへのパス指定
  • リソース変更時の自動コンパイル設定

【コラム】反マイクロソフト主義のC#プログラマ・コミュニティ?
 Eclipse 3.0用の版では、コンパイラとしてオープンソースの.NET互換環境である「mono 1.0」に含まれるC#コンパイラも使用可能となっている。これを使用すると、それが最善であるかはさておき、マイクロソフトのソフトウェアに一切依存しないC#開発環境を構築することも不可能ではない(mono 1.0を使用するならOSすらWindowsでなくてもよいことになる)。

 その点で、C#という言葉を聞いただけでマイクロソフトは嫌いだと反射的に拒絶して何も聞こうとしない態度は適切とはいえないし、逆に顧客からオープンソースであることを条件にされたからといってC#で開発できないと思い込む態度も適切とはいえないだろう。

 C#はヨーロッパの標準化団体であるECMAによってECMA-334 C# Language Specificationとして標準化されており、あくまでECMA-334を使うと決めるなら、マイクロソフトという存在にまったく触れることなくC#を扱うこともできる。そのようなことから、反マイクロソフト主義のC#プログラマ・コミュニティであるとか、オープンソース支持者のC#プログラマ・コミュニティといったグループが将来生まれるか、あるいはすでに存在している可能性も十分に考えられる。

 しかし、真のポイントは、ただ単にC#が非マイクロソフト・ユーザーに開かれたということではなく、ECMA-334を仲介して、マイクロソフト世界と非マイクロソフト世界の間に互換度の高い相互運用性が生まれる可能性が提示されていることにあるといえるかもしれない。

 次に、EclipseとC# Pluginを実際にインストールしてみる。

 

 INDEX
  [.NET Tools]
  .NETでもEclipseを使ってみる
   1.EclipseでC#の開発を可能にする「Improve C# Plugin for Eclipse」
     2.EclipseとImprove C# Plugin for Eclipseのインストール
     3.Eclipse上でC#プログラムを作成する
     4.C# Pluginのそのほかの機能とVisual Studio .NETとの比較
 
インデックス・ページヘ  「.NET Tools」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間