IDE(Eclipse) VS テキストエディタ

Eclipseからテキストエディタに戻れない10の理由」http://d.hatena.ne.jp/Nagise/20081219/1229706501
Eclipseのメリットを知ってほしい」http://d.hatena.ne.jp/Nagise/20081221/1229826921
Eclipse から秀丸に戻れない理由とかじゃなくて」http://d.hatena.ne.jp/y_fukaya/20081222/1229931730

まず「テキストエディタ vs Eclipse」という図式がおかしいと思う.統合環境というのは通常テキストエディタを「含む」ものなのだから,Eclipse使いは内蔵されるテキストエディタも使っているはずなのだ.

入門 GNU Emacs 第3版

入門 GNU Emacs 第3版

テキストエディタ オンリー vs Eclipse(テキストエディタ含む)」とした場合でも,なにもEclipseの内蔵エディタを使い続ける必要はないわな.Eclipseのエディタはまあまあ出来のいい方だとは思うけど,たとえばEmacsに比べれば貧弱極まりなく,所詮は「オマケ」程度の機能でしかない.本気でプログラムを書く時には,やはり「本物のエディタ」を使った方が効率がよい.

あと大きなプログラムを書く時も,Emacsの方が圧倒的に上ですね.

1. コードの自動補完
2. 構文解析を伴う高度なシンタックスハイライト
3. 宣言への移動など

便利と言えば便利だけど,ないと困るほどのもんでもない.
ブクマでもあったけれど,1と3は諸刃の剣でもある.下手糞なコードを書く人にこういう機能を与えると,スパゲッティプログラムを大量生産してくれるので,あとでデスマーチになることうけあい.

4. コードのフォーマットチェック
6. バージョン管理ツールとの連携
7. ブレークポイントによるデバッグ
8. 自動テストツールのサポート

Eclipseでやってもいいけど,個別のツールがあればそれで十分.*1一つ一つインストールするよりはEclipseでまとめてインストールする方が楽だと思うけどね.

あとデバッガに関しては,C言語などに比べてJavaではその必要性はすごく少ない.

9. リファクタリング機能

これはまあそうかな.個別のツールがあるとは聞かないし.

ただし,いずれにせよツールで自動的に可能なのは比較的「単純/小規模なリファクタリング」であって,「複雑/大規模なリファクタリング」はいずれにせよ難しい.

リファクタリング―プログラムの体質改善テクニック (Object Technology Series)

リファクタリング―プログラムの体質改善テクニック (Object Technology Series)

  • 作者: マーチンファウラー,Martin Fowler,児玉公信,平澤章,友野晶夫,梅沢真史
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2000/05
  • メディア: 単行本
  • 購入: 94人 クリック: 3,091回
  • この商品を含むブログ (312件) を見る

手戻りの工数が大きからと言う理由で設計を慎重に行っていたのは前世紀の話。安全に手間無く設計をいじれるようになったため、プロトタイピングとリファクタリングによる極楽な開発スタイルになった。大体、試作もなしに紙の上で一発で設計ができるとか考える方がどうかしている。

「設計」を「変数名やメソッド名を決める」と言うレベルの話であるとするなら同意.しかし「設計」はもっと大規模なものを含むのであれば,リファクタリング機能でも対応できないことがほとんど.また変数名も満足につけられない低レベルプログラマは可読性の極めて低いコードを書くことも多く,i1,i2,jd,ia,id2,n3....のような変数が並んでいると,変数名を付け直そうにもコードの解読に膨大な手間を取られることも少なくない.

リファクタリング機能の過信は禁物.

10. コンパイルエラーに対して解決策を提示

これは「解決策」というのは言い過ぎと思う.比較的初歩的なミスについては解決策も単純だけど,複雑な(例えばクラス設計や同期制御の)ミスについては解決策は一意ではなく,統合環境は何も教えてくれない.

http://b.hatena.ne.jp/entry/http://d.hatena.ne.jp/Nagise/20081219/1229706501

  • コードアシストは諸刃の剣だとおもう。API覚えなくていい分まったく頭に入らんから。
  • eclipse は便利だけど、eclipse が無かったら何もできないにはなりたくないな

については強く同意.

  • Javaの人にはいいよね。CなんだけどEclipseには何度も挫折してemacsに戻ってる。そろそろまた試してみるか?

おそらく無理して使うだけのメリットはないと思う.Javaは文法的にシンプルなのでリファクタリングや強力な静的解析が可能なんだけれど,C言語C++などではそれは非常に困難.Emacsが使えるならEclipseを使うメリットはほとんどないと思われる.

*1:UNIXの文化ってそういうものだったり.