プログラマが知るべき97のこと

This entry was posted by on Sunday, 9 January, 2011

プログラマが知るべき97のこと

ざっとひと通り眺めた。

一つ一つがせいぜい2ページのエッセイであり、それが97も並んでいて、しかも書き手が自薦だというから、とにかく玉石混淆。面白いものもあればつまらないものもあり、深く頷くものもあれば首を傾げるものもある。プログラムに寄り添うものもあれば、開発手法を紹介するものあり、チームワークを考察したものがあり、プログラマとしての心構えを説くものもある。

個人的な好みを言わせてもらえれば、もう少し一つ一つの文章を長くして、数は減らして、重複をなくして、中身のクオリティをあげて、一貫したコンセプトを導入して……というような編集行為が加わったほうが好みなのだけれど、そういうものではないというのがこの本のコンセプトだろうし、これはこれでいいのかもしれない。さすがに97もあれば面白がれるものの一つや二つはあり、人によってどういった内容が刺さるのかには差があるはずだからだ。多様性は善である。

いくつかに言及したい。

「16 コメントに付いてのコメント」「17 コードに書けないことのみをコメントにする」については深く頷くものがある。コメントの書き方というのは一種の技術であり、適切なコメントを書くというのは学ばないといけないことだと思うのだが、そもそも「コメントを書くべきかどうか」ということすら議論の対象になっているのはよろしくない。コードリーディングで本になるぐらいなら、コメントリーディングがあってもいい。

「26 言語だけでなく文化も学ぶ」にも深く首肯する。プログラミング言語にはそれぞれ固有の文化がある。COBOLのプログラマはなんでもCOBOLのように書く、なんて悪口はよくあるけれども、なんてことはない、そんなことは多くの人がやっているわけだ。言語を学ぶのは簡単だが、文化を学ぶのには時間がかかる。そしてより大切なのは文化を学ぶことなのである。

「44 IDEを知る」と「50 Hello, Worldから始めよう」は二人の著者が全く正反対のことを述べていて、前者では旧弊なプログラマにIDEを使うべきだと説き、後者はIDEプログラマに基本的なツールを使えと説く。わたしはどっちも正しいことだと思う。残念ながらわたしはEmacsを使っている旧弊なプログラマだが、IDEは優れたツールである(EmacsもいろいろカスタマイズしていくことでIDEといえるぐらいには発展するが、わたしはそこまでちゃんと使ってはいない)。IDEを使わずに無駄な時間を過ごすことはない。一方で、後者の話はわたしがよくやるようなことなので、親近感を感じた。以前、/usr/lib/*.soをgrepするという荒業をやって同僚にたいへん驚かれたことがあったなあ。

あと「35 超人の神話」は素晴らしい。神のようにみえるプログラマであっても所詮は人である。そういうことを忘れている人も多いような気がする。また同時に思うのは、不思議なブランド信仰で、技術的に不可能に思えるものがなぜかAppleなら(MSなら、Googleなら、Facebookなら)可能だと思ってしまう人が世の中に多いようだ。所詮は人間であり、魔法はどこにもないのだ。

日本人の書いた物では「01 命を吹き込む魔法」が面白い。コードネームは重要だと思う。名前は本当に何でもよいが、意味はあとからこじつけるべきであり、やろうとすることに基づいて名前をつけると妙に長くなったり、3文字くらいのアルファベットの略称になってしまってよくない。好きな食べ物だからメカブ、ぐらいがちょうどいいのだ。「03 ルーチンワークをフローのきっかけに」も面白かったが、こちらはいろいろ考えるというよりは、大変に具体的で説得力のあるメソドロジーが紹介されているから明日からやってみたい、なんて気にさせてくれる。ところで、本題と関係ないが「10 名前重要」(本題のコンセプトは「01 命を吹き込む魔法」と同じだが、森田さんの語り口のほうがよいと思った)でA.K.ル・グインという表記があってのけぞった。アーシュラ・K・ル=グウィンの「アーシュラ」はUrsulaと綴るので単純に間違っています。

One Response to “プログラマが知るべき97のこと”

  1. Yuki

    A language that doesn’t affect the way you think about programming,
    is not worth knowing.
    - Alan J. Perlis