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

ポール・グレアム著「ハッカーと画家 コンピュータ時代の創造者たち」を読んだのでまとめてみました。


ハッカーってどんな人間?

ハッカーとはどのような人間なのか、
ハッカーと画家の比較からその具体像に迫っています。

どちらもものを創る人間である

ハッカーも画家も、どちらも「クリエイター」であるということです。

創りながら理解していく

画家が絵画を描くときには、デッサンして絵の具を乗せた後も、
上書きに上書きを重ねて試行錯誤していき、ひとつの絵画を完成させるそうです。

プログラミングでは、最初に完璧な計画を立ててからコーディングすることを美徳とする人もいますが、
多くの優秀なハッカーは、とりあえず手を動かしながらコーディングを進め、
まずい仕様、品質の悪い実装を段階的に修正しながら、改善に改善を重ねてソフトウェアを生み出します。

このあたりはアジャイル開発の文脈で語られる「継続的インテグレーション」にも通じるところがありますね。

共感する力が必要

ハッカーも画家も、多くは人間が見て使うものです。
このため、ハッカーにも、「使う側の人間の視点に立って共感する力」が求められます。
この力は意識していてもなかなか身につかないものですね。
つい開発者側の視点に寄りすぎて、ユーザがどう感じるのか見えなくなりがちです。


素晴らしきハッカーのエッセンス

素晴らしいハッカーがどんなことを重要と考えているのか、
本書には様々なエッセンスが散りばめられています。
その中でも特に際立ったエッセンスを3つ紹介します。

Lisp最強説

著者のポール・グレアムはLisp関連書籍の執筆者でもあり、
Lisp派生言語「Arc」の設計者でもあるので、
本書でも多くのページを費やしてLispがいかに素晴らしい言語であるかを主張しています。

ポール・グレアムは、代表的なプログラミング言語の系譜を

Java、Perl、Python、Rubyと順に見てくると、(中略)各言語は次第にLispに近づいてきている。

と捉え、Lispは非常に生産性の高い言語であり、取り組むべき価値のあるものだと主張しています。

Webアプリ最強説

デスクトップアプリケーション全盛の時代に、
ポール・グレアムはViawebをWebアプリケーションとして実現しました。
ユーザ側にはどこでも使える便利さ、インストールやバージョンアップの手間がない手軽さを提供しつつ、
開発者側にはバグの再現が容易で、すぐに修正版をリリースできる、一石二鳥の利点を享受しています。

もちろん、これはエンドユーザ向けのアプリケーションであったこともあり、
企業向け、バックエンド向けのアプリケーションには必ずしも適用できないものですが、
Webアプリケーション全盛の現在の姿をいち早く実現した先駆者だったようですね。

ベンチャー最強説

ソフトウェア開発やるなら、10人以下の少数精鋭が最も生産性が高いと主張しています。
そして、

凄腕のプログラマは半月で百万ドル相当の仕事をすることだってできるだろう。

とあります。
凄腕のプログラマに余計な仕事を頼むことなく、その作業を一時も中断させることなく、
持てるポテンシャルのすべてを発揮させられる環境があるとしたら、それは大企業ではなくベンチャー企業だろう、と。
ベンチャー企業では苦労も多い分、プログラマが生産性の高い仕事をしたときに、
より大きな富を創りだすことができる、と。
そんな凄腕のハッカーになりたいものです。


総評

今更ながら語る必要もないかもしれませんが、
本書は「ハッカーとはどんな人間か」を説明するにとどまらず、
「素晴らしいハッカーになるためにはどうあるべきか」にまで言及し、
読者に具体的なアクションを起こさせる、優れた書籍だと思います。
Lispには馴染みがなかったのですが、手元で試してみたいと思いました。


おまけ その1

下記に本書に掲載されたエッセイの和訳が一部公開されています。


おまけ その2

下記のサイトでは、ブラウザ上でLISPを実行できます。
「ハッカーと画家」を読んでLISPに興味が出てきた方にはぴったり。

  1. トラックバックはまだありません。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。