Rのつく財団入り口

ITエンジニア関連の様々な話題を書いているはずのブログです。

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

 読んだのはしばらく前なのですが記念に感想をば。
 「普通のやつらの上を行け」……キャッチーな帯の宣伝文句がそのまま当てはまるハッカーの自伝・エッセイ集。
 後にYahoo!に買収された初のASP(ASP.NETでなく、アプリケーションサービスプロバイダのほう)ベンチャー企業の創設者、天才LISPプログラマーにしてスパムメールベイジアンフィルタの理論の生みの親、本物のハッカーポール・グレアム氏のエッセイ集です。ネット上でも無料公開されています。
 この本、プログラマ・エンジニア向けおすすめ本や成功したベンチャー企業の経営者に聞く影響を受けた本などにめちゃくちゃよく出てくるのですが、未読だったので改めて本で読みました。
 かなり挑発的でもあるので人によっては向かない感もあるのですが、自分的には「何これこの本面白REEEE!!」と脳内で標準出力に出したくなるぐらいの当たりでした。おすすめ本頻出なわけです。
 実に刺激的でエキサイティング。冷静になってみるとかなり極端な意見や過激な意見もあるのですが、支離滅裂ではなく主張は首尾一貫、論旨は明快、話は痛快、ソフトウェア工学のみならず西洋史や美術の豊富な知識を元に根拠や大胆な仮説、分かりやすい比喩を交えながら、ハッカーらしい軽妙な口調でスッと頭に入ってきます。この人は物凄く頭が切れるんだなあというのがよく分かる。日本語訳もかなり読みやすいです。

 あとがきに原文の話があり、

ポールの文章は、3つの点で最適化されている。明快な主張、分かりやすい言葉、そして素晴らしいリズムだ。彼の文章を読んで心が浮き立つのは、その内容だけでなく、文章の完成度の高さにも依っている。そのような文章を日本語に翻訳するのは、アーキテクチャ向けにかりかりに最適化されたプログラムを別のアーキテクチャに移植するようなものだった。

 とある程度コードが書ける人にだけ分かるような喩えがありますが、何となくその気持ちが分かります。おいどんなんぞはハッカーとは対極のただの職業エンジニアですが、普段は眠っている脳の奥底の野生の部分が覚醒し、ふだんとは違うことをひとりでに考え始めるような、そんな何とも言えない疾走感・トリップ感のようなものを受けます。


メイド・イン・USA

 日本語版に向けて新たに書いてくれたという新章。新興国アメリカの国民性もあり、車や街をはじめアメリカの製品は基本的に美しくない……という話。やっぱりApple製品を評価していますね。アップルのノートPCが米国製にしてはうまく出来すぎていてスウェーデンや日本製のようだ……とあり、へぇーと思いました。序文でも日本を素晴らしい場所だったと褒めています。

どうしておたくはモテないのか

 いきなりこの話題で笑えます。自分を回りに合わせているか、回りにどう見られているかを価値に置いて過ごすティーンエイジャーがほとんどの中で、才能を伸ばしたり知性に重きを置いているおたくは大学に行くまで不遇の時代を過ごさざるを得ない。学校は牢獄だ!立てNerd! 大学や社会に出てからなら道は開ける。ぶちかまして世界を変えろ!アメリカの公立学校の凡庸さも変えろ! 的な話がしばらく続くのですが、この話題でいちいち根拠を明快に筋道立てて真面目に論じているので面白い。
 スクールカースト回りの話はアメリカの映画やドラマだとよく出てきますが、自身はクラスの中でA~EのDランクの下位グループだったというグレアムさん、不遇の10代にさぞ苦労して黒歴史が色々あったんだろうなあと思います。

ハッカーと画家

 プログラミングは絵画や建築と共通点があること、小さくて俊敏なベンチャー企業なら成功を作って勝つことができることなどを美術史を交えて語っています。
 『情熱プログラマー』の作者のチャド・ファウラーさんもエンジニアになる前は何とジャズのサックス奏者だったそうだし、意外とソフトウェアエンジニアリングって他の職業とも繋がりがあるのかもしれませんね。

情熱プログラマー ソフトウェア開発者の幸せな生き方

情熱プログラマー ソフトウェア開発者の幸せな生き方

  • 作者:Chad Fowler
  • 発売日: 2010/02/26
  • メディア: 単行本(ソフトカバー)

口にできないこと

 道徳やその時代ごとの流行、常識、教育、偏見、その他から生まれるタブーやレッテル貼りについても頭を働かせてもう一度考えてみようという話。口に出して人と論争するのは大変だからやめて、でも知的好奇心は持った方がいいよと話しています。

天邪鬼の価値

 ハッカーという言葉の定義やその思考・行動様式。ハッカーは独創的な答えを求めるものだ。ルールを破れ!という話。ソフトウェアを守る知的財産権の話も。

もうひとつの未来への道

 作者がベンチャーASP企業Viawebを立ち上げてからYahoo!Storeとして約5000万ドルで買収されるまでの四方山話。クラサバが終わってインターネットとWebアプリケーションの時代が幕を開け、高価なメインフレームから安価なパソコンへ舞台が変わり、真に創造的なハッカーたちが活躍した時代、主に90年代後半のコンピュータ、インターネット小史としても楽しめます。AppleGoogleMicrosoftの歴史を知っているとさらに楽しいのではないでしょうか。(Facebookは2004年なのでもう少し先ですね。)

ペーパーバック版 スティーブ・ジョブズ 1

ペーパーバック版 スティーブ・ジョブズ 1

ザ・サーチ グーグルが世界を変えた

ザ・サーチ グーグルが世界を変えた

 後から書いたんだからきっと付け足しもあるんじゃないかと思いますが、グレアムさんの未来の予想、先見の明がかなり当たっていてすごい。読みながら「後のGmailである」「後のクラウドである」「後のGoogleである」「後のWebサービス全盛時代である」「後のChromeである」「後の日本におけるWeb2.0というやつである」「後のアジャイル開発である」「後のDevOpsみたいなものである」などと動画だったら字幕をつけたくなってきます。
この時代Appleはまだ低迷状態にありますがもし、iPodWebブラウザ付き携帯電話がついたものが登場したら状況は変わるだろう……なんて脚注で予言していて、ニヤリとさせられます。
 実際、最初は数人で始めたViawebの開発の中で様々なことに気付いたり、2017年のJava9でついに公式に廃止予定のJava Appletには90年代の当時から手を出さずに危険を回避していたり、先見の明があったのは確かですね。
 そしてこの手のハッカー寄りのコンピュータ・インターネット史でほとんど約束なんですが、知恵の回らなかった青い巨人IBMや台頭してきたけどイケてないMicrosoftハッカー精神の仮想敵、コケにされるワルモノ役で笑ってしまう。なんでいつもこうなんや……

 章の末に至っては1977年の青春時代、Nerdなカンジの若き日のビル・ゲイツたまがスピード違反か何かで捕まった時の写真が記念に載っています。Microsoftに依頼したら断られたので写真を許可してくれた警察署に感謝するとわざわざ序文に書いてあります。
 ハッカー流のユーモアでしょうが、これって黒歴史の卒業アルバムを世界に晒されてるようなものですからねえ。なんでや!ゲイツさんはゲイツさんで凄い人やろ!

富の作り方

 富と金は違う。道徳や親の教えで誤解しがちだが富は決まった全体量の中で分配しなければならないのではなく、いくらでも増やすことができる。領主に農奴が搾取される時代、欧州都市国家で職人が誕生した時代を経て今。少ない投資と技術という大きな梃子で富を作れるのは……個人が所有できるようになったコンピュータだ。優秀なハッカーだ。世界を変えろ!という話。

格差を考える

 よく収入の格差はいろんなところで論じられますが、グレアムさんは人が欲しがるものを作れば富は得られるのだから、民主主義社会で格差があるのは当然だと論じています。
 NBAの選手は技能があるのだから年俸が多いのは当然だ。もしもスティーブ・ジョブスを適当な100人の委員会とすげ替えたら次のApple製品はどうなってしまう?と読者に問いかけて、注釈で「答えはWindows。なんでいつもMSはdisられるんや……

スパムへの対策

 世界で使われているベイジアンフィルタのもととなった論文を書いたご本人からのエッセイ。

ものづくりのセンス

 様々な分野にセンスが存在し同じ部分もあるのだから共通化、可視化できるはずだという話。
グレアムさんの考える良いデザインとは……「単純である。」「永遠である。」「正しい問題を解決する。」「想像力を喚起する。」「しばしばちょっと滑稽だ。」「難しい。」「簡単に見える。」「対称性を使う。」「自然に似る。」「再デザインだ。」「模倣する。」「しばしば奇妙だ。」「集団で生起する。」「しばしば大胆だ。」
 互いに矛盾する特徴もありそうに見えますが、トピックを読むとどれもなるほどと思います。デザイン畑の人やApple製品が好きな人とかにぐっときそうな話です。

プログラミング言語入門

 このへんからぐっと深くプログラミングの話になりますが、平易な言葉を使っているのでプログラマーでない人にも世界への入門として面白いと思います。

百年の言語

 1950年代にLISPたちが生まれてから半世紀、そして一世紀後には一体どんな言語があるだろう?考えると色々面白いし言語を作ってもよいんだよという話。生物の進化の系統樹になぞらえて言語の進化を論じているのが面白い。
 グレアムさんはプログラムの再利用性は重視するけどオブジェクト指向はそれほど肯定していないんですね。
 そしてLISP推しの前振りとして、Javaが事実上disられてる……確かにエンタープライズな基幹システムが概ねJavaに置換されてあとは保守メインになり、本書で概ね敵役にされている大企業が社員に求める言語トップがJavaになり、Oracle配下になってJavaの進化の動きが鈍った今、これから巨体が変化に対応しきれず停滞して徐々に取り残されていったら……JavaはかつてのCOBOLのような立ち位置になるんじゃないか、という見方は日本でもあります。

普通の奴らの上を行け

 このへんから怒涛のLisp推しが始まります。ベンチャー企業の平均的な成長とは、すなわち潰れて終わること。90年代後半に幾多のライバルを出し抜いてViaweb社がトップに存在し続けられたのは秘密兵器ではなくある事実だった。プレス発表でも決して言わなかったこと……それは内部実装がLispであることだったのだぁ!という話。
 Lispの何が凄いのか、正直レベルが高すぎてよく分からない(笑)のですが普通の奴らの上を行くために、凄いことをしていたのは分かります。
 ライバル企業のチェックには当時のグレアムさんいつも人材募集ページを見ていたそうですね。危険度の判定方法は、Oracle経験者募集中のところは一番安全の問題外、JavaC++プログラマ募集中のとこも安全、PerlPythonプログラマ募集中だったら技術部門に本物のハッカーのいる可能性あり、Lispハッカー募集中だったら本物で強敵。またOracleJavaがdisられてるお……

オタク野郎の復讐

 何も知らないくせに見当違いの指示をしてくる髪の毛の尖った上司を尻目に、どのプログラムで作っていくかという話。軽くJavaVBやスーツ族の人々をdisりながら、言語は進化するから等しくはない、数学との関連性、言語の持つパワー、そしてまたLISP推し……と、言語にまつわるかなり濃い話が続きます。JavaPerlPythonの順にLISPに近付いているという説が面白い。
 英語圏でもこのへんの話はその後かなり論争になったそうですね。さすが真のハッカーのグレアムさん、炎上に十分な火種と燃料を投下していきます。

 文中にあちこち何回か出てくる、ベンチャー企業にはいないけどつまらん大企業にはいるという架空像の「髪の毛の尖った上司(pointy-haired boss)」は、ピンときましたがアメリカの企業風刺コミックの「ディルバート」に出てくる名無しの無能上司キャラ、尖った髪のボスのことですね。ITMediaで長らく日本語版が掲載されています。

www.itmedia.co.jp

 グレアムさんにエッセイの批判メールを送ってきたという人は、このユーモアが分からずに額面通りに受け取ったのでしょう。書籍版だと巻末の用語解説にもこっそり出てきました。

夢の言語

 ハッカーにとっての夢のプログラム言語とは何か、人気言語が主流になる仕組み、言語の良さの評価ポイントなど……と濃い話。
 度々推しているLispをはじめもう廃れたものを含め、多くの言語の名が本書には出てきます。C/C++Perl/Pythonはよく出てくるし、Rubyも何回か出てきますが、そういえばPHPはほとんど出てこないですね。(覚えている限りこの章に1回程度。) 手軽に書けるいい所もあるのですが、ハッカークラスの人になると縁がないのでしょうか。

デザインとリサーチ

 使うのは最終的にはユーザーなのを忘れてはいけないよ、という話。

素晴らしきハッカー

 本書が世に出た後の基調講演の話。ハッカーの価値観、仕事道具や仕事環境の大事さ、ハッカーが好きな事・嫌いな事、ハッカーの集まる場所、見分け方、育て方……などハッカーかくあるべしという話。
 ベンチャーが目指す会社のモデルとして、Microsoftは丁度良いタイミングで浮上したデータ上の特異点だからモデルにならない、次のAppleGoogleを探すべきだ、ゲイツさんはGoogleのブランドなんかでなくGoogleの方に良いハッカーが集まっている事実を恐れているはずだ……という話のあたりも深い。


 というわけで名言多数、読んでるだけで実に痛快な本でした。
よし、オデもLispやってスーパーハカーになるお! とはなりませんでしたが、神の言語ってそんなに凄いんだっけ……とWikipediaやQiitaをなんかチェックしたくなるぐらいには洗脳された気がします。(笑)
 「ITエンジニアに読んでほしい!技術書・ビジネス書大賞2014」のベスト10入選、その名に違わぬオススメ本です。

www.shoeisha.co.jp

Land of Lisp

Land of Lisp

On Lisp

On Lisp