ハッカーと画家

"ハッカー"という言葉が未だに間違った使われ方をされていることがある。最近ではアメリカで発生したクレジットカード情報の盗難事件で、全国紙で"ハッカーによる犯罪"と報じられていた。
"ハッカー"とは天才的に優れたプログラマという意味で良い言葉として使われているものだ。ネットワークに侵入したり、コンピュータシステムを破壊するような犯罪者は"クラッカー"や"アタッカー"と呼び分けるべきだ。

というわけで、"ハッカー"とは天才プログラマであることをわかってもらった上で、最近、『ハッカーと画家』という本を読んだので、読書感想文でも書こうかと思う。


ハッカーと画家 コンピュータ時代の創造者たち

ハッカーと画家 コンピュータ時代の創造者たち

  • この著者Paul Graham氏自身、非常に有名なLispハッカーである。ハッカー自身がハッカーについて記した本となっている。だから、ハッカーの考えていること、ハッカーへの近づき方など納得させられる。
  • この本を読んで一番感じたことは、自分に対する情けなさだった。僕が若いとき、僕の会社にもハッカー的な尊敬する先輩がいた。(その人は今でもハッカー的であり、尊敬できる。)僕もその先輩に育てられたところもあってか、僕自身にもハッカー的嗜好(きれいなコードを好み、自分の好きなプログラムを書く)が強かった。実際、仕事で面白くないプログラムを書かなければならなくなっても、暇を見つけてPerlでRobotを書いてみたり、なんとか自分の好きなコードをしようとしていたものだ。
  • でも、今はどうだ。リーダとして組織的にプログラム開発するためのことばかり考えている。個人の能力はもちろん大事だが、それよりもチームとしての生産性を重視するようになった。会社はハッカー的な天才はそんなにいるわけがない。そうした場合、チーム開発にとっては、ハッカーのような一匹狼は時として邪魔になることがある。チームとして丸くおさめることを考えると、出ている杭は抜かなければならないのだ。こんな考え方になってしまっている自分が情けなかった。この本を通じて、個性が重要であり、天才が必要であることがわかったような気がする。
  • これからはやっぱりチームを重視しなければならないという考えは変わらないだろう。でも、そのチームを構成する一人一人のプログラマの個性が最も重要で、なんとかハッカー的資質を育てることができるチームを目指したい。
  • でも、本書中でPaul GrahamJava言語を軽蔑していることは明らかだったが、その意見には賛同できなかった。個人開発にはLispなどの抽象度が高い言語でも不便はないかもしれない。そりゃ、自分が書いたプログラムは自分は理解できるから。でも、チームで開発する場合には、Javaのような制約の多いオブジェクト指向言語で、リファクタリングやリバース・エンジアニングによるダイアグラム化も容易なことは非常に便利だ。だから、ここしばらくはJavaはまだまだ最もソフト開発に利用される言語の地位を保つのではないだろうか。

この本は極端な部類だと思う。一般的なソフト開発者にとっては理解できないことも多いだろう。『何を我侭を言っているんだよぉ』とかって怒りがこみ上げてくるかもしれない。この本に共感できる人は、ハッカーに向かって精進しましょう。

と言いながら、今度はアジャイル開発に関する読書感想文を書こう。(間逆の本だ。)