42-コマンドラインツールを使う
「プログラマが知るべき97のこと」の42個目のエピソードは、コマンドラインツールとIDEに関する話です。コマンドラインツールとIDE、テキストエディタとIDEといったテーマに関しては、時には宗教戦争となる危険なネタとして知られています。結局の所は好みの問題と言えるのですが*1、お互いにメリット/デメリットを主張しているに過ぎません*2。自分はIDE派ですが、コマンドラインツールを覚えることが重要であるという、このエピソードの主張には全面的に同意します。
自分の得意とするJavaはIDEが特に高度に発達した言語です。また、高機能なIDEのほとんどが無償で利用することができる特殊な言語と言えます。今、Eclipse無しでJavaの開発は考えられません。NetBeansなど他の高機能なIDEも存在しますが、Eclipseを使いこなした上で選択していたり、幾つかのEclipseの得意としない分野*3について使い分けをしているJavaプログラマが多いと思われます。静的型付の強い言語であるJavaはIDEとの相性は抜群です。Eclipseのクイックフィックスに代表される「もしかして?」の機能を使いこなすと、IDEと対話するようなプログラミングが可能になります。プログラマはある程度のヒントをIDEに与えれば、自動的にかつ正確なコードを提案してくれるのです。また、Eclipseがサポートしてくれるおかげで、Javaは冗長な構文を味方に付けていると言えます。このような背景からEclipseはJavaの一部と考える人も多くいます*4。
しかし、IDEは非常に有用ですが、このエピソードで語られるように、裏側で何が行われているのかを知る必要がないことが最大の問題です。IDEはコマンドラインツールなどで行っているような処理を、ボタンやコンテキストメニューから簡単に実行するためのツールです。それがエディタなどと統合されて今の形があります。したがって、IDEを使っているという点とコマンドラインツールを使えるかという点は直接の関係はありません。ところが、IDEからJavaを学び初めそのまま何年もたった人にはjavacの使い方すら知らない人は多くいます。職場環境や学習意欲の問題といえばそれまでですが、コマンドラインツールを使えなければまともにプログラミングが出来なかった頃には考えられなかった問題でしょう。それが、嫌IDE派がIDEを嫌う理由の1つだと思います。
勉強会やセミナーなどでプロのJavaプログラマがEclipseを使ってデモを行うと、Javaプログラマだけでなく普段はテキストエディタを使っているような層からも驚愕される場面があります。「えっ?何したの?」という具合に冗長で長いJavaのコードが生成されていく様子は、EclipseとJavaの持つ不思議なコラボレーションです。しかし、高度な補完を行う背景にはリファクタリングのノウハウがあります。リファクタリングのスキルがあるからこそ魔法のように使っているように見えるのであり、単にツールのメニューを選択しているわけではないのです。
IDE派の人は「俺はコマンドラインツールも使えるけど、もっと効率的にコードを書くためにIDEもフル活用しているんだよ」と言えるようになりましょう。
- 作者: 和田卓人,Kevlin Henney,夏目大
- 出版社/メーカー: オライリージャパン
- 発売日: 2010/12/18
- メディア: 単行本(ソフトカバー)
- 購入: 58人 クリック: 2,107回
- この商品を含むブログ (350件) を見る