『便利なツール』のデメリット

http://d.hatena.ne.jp/suikyojin/20050706#p1
メモ.
良いバットや高価なスパイクを使ったからと言って,誰もがプロ野球選手になれるわけではない.道具なんてのは手足の延長にあるもので,道具を使った時の能力差は生身の能力差に比例する*1

良い道具を選ぶこと自体は否定しないが,初心者が怖いのは道具の枠組みに振り回されて,自分の能力の低さを理解できない点にある.プリミティブな道具では自分の生の能力しか出てこないので未熟なことは未熟な目にも一目瞭然だが,複雑な道具ではどこまでが道具の力でどこからが自分の力か未熟な目には分からない.(ベテランには一目瞭然.)本来の能力の1/100,1/1000しか引き出せていないにも関わらず,或いはマイナスになっているにもかかわらず,素人だと生産性が上がったと誤解する危険がある.

特にソフトウエア開発では記述されたソフトウエアの「コード量」にはほとんど意味はなく,「コードの質」が重要になる.優れた道具を使えばコード量を増やすのは容易に実現できるが,質に関してはほとんど変わらない.むしろ複雑になるだけ質が悪くなることもすくなくない.最悪では最低品質のコードが大量生産されるだけとなるだろう.

なおEclipseは統合環境の割には,かなり筋のいい道具だ.これに対しcheckstyleは使わない方がいいんじゃないかというツールの一つ.C言語のlintの方がマシだったな.*2

*1:こういうことを言うと,また「時代遅れの年寄りの戯言」と思う若造もいるんだろうなあ.事実なのに.

*2:これはCがそれだけ危険な記述が可能な言語だということもある.C言語だとlintに頼らないといけない部分以上のものが,Java言語ではデフォルトで入っているので,lint型のツールの出る幕がないのだ.