eclipseの本当のデメリットとそれを克服するための代替案

viからeclipseに戻れない10の理由は半分ネタ、半分本気です。
今回は、僕がもうしばらくの間eclipseを使わないでいようと思う本当の理由を書きます。

eclipseのメリット

本題の前に、Eclipseからテキストエディタに戻れない10の理由で挙げられているメリットのいくつかについて考えてみます。

無条件で受け入れていいと思うメリット

以下のものは無条件で受け入れていいと思っています。

1.と2.に関しては、キー入力が減ったり、見やすくなったりするのだけど、デメリットはあまりないでしょう。
7.のデバッグは素敵です。代替手段として、javaであればjdbというコマンドラインのデバッガがあるみたいですが、よくわかりません。勉強不足です。

どうでもいいと思うメリット

eclipseの便利な機能の恩恵を受けられる前提があれば、共通のフォーマットを保つことの重要性があまり感じられないです。見た目きれいなのはわかりますが。
大事なのはフォーマットよりも論理的なプログラムの構造の方だと思います。多少のフォーマット間違っていても、プログラムの論理構造があっていれば問題ないと思います。むしろ検出されたフォーマットの修正に割く時間がもったいないです。
開発現場でCheckStyleを使わされていたことがありましたが、正直面倒なだけでした。

よく考えたいメリット

ここにあげるのはeclipseのメリットの中でも重要なものです。重要であるからこそ、そのメリットの効果をよく考えたいのです。

宣言への移動をした先がinterfaceのメソッドや抽象メソッドの場合には、その後どうしましょう?
eclipseではものすごいリファクタリングができますが、自分のやりたいこと一致しているのでしょうか?
コンパイルエラーへの解決策は、自分のやりたいことと一致しているのでしょうか?
eclipseのやってくれることが自分の意図と一致するのか、一致しない場合にはどうするのか、あるいは、何もしてくれないばあいにはどうするのか・・・。この点についての判断がつかない場合、eclipseの本当のメリットは得られないと思うのです。

ここからが本題

今回の主張のポイントは、上記の「よく考えたいメリット」について、自分で「判断」が付くかどうかです。さらに、「判断」できるようになるために、どうするかという点です。

おおざっぱにプログラマを分類してみる

仮に、プログラマを以下の二通り分類できるとしてみます。一応補足すると、必ずこんな風に分かれるとは思っていません。

  • A:きちんとプログラミングの仕組みを理解している。eclipseの動作の成否について自分で「判断」がつく。eclipse等の統合開発環境がなかった場合でも、時間をかければ別の手段でも何とかできる。
  • B:プログラミングの仕組みをあまり理解していない。eclipseの動作の成否について自分で「判断」がつかない。eclipseがなんかやってくれるからすごいことができている感じ。

ここでいうBの極端な例は、

プログラムがろくに書けない奴にはテストコードの作成でもやらせておけ!

でいう、「プログラムがろくに書けない奴」とか、

テストケースの策定にはスキルが必要なので、それはテストケースを策定できる程度の能力を持つ人間にやってもらうしかない。そのテストケースをJUnitの自動テストのコードに起こす作業は、業務の簡単なビジネスロジックしか書けません、という使えないコーダになんとかやらせることができる仕事で、かつ、システム本体に悪影響を与えさせないという安全な仕事なのである。

でいう、「業務の簡単なビジネスロジックしか書けません、という使えないコーダ」ですね。
ここまで極端でなくても、Bに該当する人は少なくないのではないでしょうか。

できればB⇒Aに成長したい

片手間でなく仕事としてプログラムをするのであれば、できる限りAの開発者に移行できた方がいいというのが僕の意見です。自分がどういう作業をしたいのか、その結果が意図した通りなのかといったことが判断できる方が良いです。プログラムなんて片手間でよくてSEをやるんだとか、そもそも開発の仕事自体興味ないよっていう人にとっては関係のない話です。

B=>Aになるのにeclipseはデメリットになりうる

人それぞれだとはいえ、仕事は楽な方が良いと感じる人は少なくないはず。そうすると、eclipseで簡単にできてしまうことについて、わざわざ頭を使わなくなってしまうと思うのです。B=>Aへの成長に関して、頭を使わないことは大きなデメリットになりうると思います。
eclipseでできること、あるいは、eclipseについて知っていることが、開発でできることの限界なんだと思い込んだら、成長は難しいでしょう。

Bの人がただeclipseを使うことへの代替案

単にeclipseを使うことに対する代替案を考えてみました。ちなみに、僕は代替案 2.を試しています。

代替案 1. eclipseで作業を効率化。余った時間で仕組みを学ぶ。

当面の作業をeclipseで削減し、空いた時間を作ります。その空いた時間で、eclipseのやってることの仕組みを考えてみたり、自由に触れるUNIX環境があれば、eclipseでやっているのと同じことをUNIXコマンド等を試してみるのもいいでしょう。

代替案 2. 全面的にviに切り替え、苦行する。

eclipseを封印し、すべての作業をviでやってみます。eclipseで得られたメリットは全くなくなるし、viは奇妙なコマンド操作だし、当初の開発ペースは格段に落ちます。とはいえ、あまりにも不便なゆえに、どうやったら便利になるかを考える習慣が付きます。というか、考えなきゃどうしようもなくります。

すでにAに該当するプログラマにとってはeclipseはメリットの方がはるかに多い

すでに開発経験方法で、十分できる人は今からvi使って苦行する必要はないと思います。

今後自分は・・・

もうちょっと苦行します。今は、( 秀丸 or サクラエディタ ) and Windowsという組み合わせも試しています。十分にプログラミングの仕組みについて理解したと思えたら、eclipseNetBeansに移行するかもしれません。IDEは楽ですからね。