C++0x本を執筆するにあたって必要なものがある。人と金と時間だ。
人が必要である。規格を読んで文章を書くのは、一人でできるとしても、自分の文章を自分でデバッグすることはできない。こう書くと無責任なように聞こえるかもしれないが、プログラマなら誰しも、「自分の書いたコードのバグを、自分で見つけるのは難しい」という考えは、理解してもらえると思う。これは能力の問題ではない。単に、自分の中で、正しいと信じているから、バグを見つけられないのである。かえって他人の方が、バグを見つけやすい。自分のバグを見つけることまで含めて能力だといえば、たしかにそれはそうかも知れない。しかし、OSやブラウザといった、一流のプログラマによって書かれた一流のソフトウェアにすら、バグは山ほどある。とすれば、誰もそんな能力を有していないのである。
よって、査読者が必要である。それも、大勢必要である。確率などというものを言いたくはないが、より多くの人に確認してもらった方が、誤りを発見出来る確立は上がる。査読者は必要だが、残念ながら、対価をはらうということはできない。私は、払いたくても、金がないのだ。
こう書くと、すぐに出てくる発想は、「C++0xを学ぶためなら、査読してくれるボランティアもいるだろう。執筆途中の原稿を、どこかにアップロードして、広く公開すればいいのではないか。誰か読んでくれるだろう」というものである。確かに、より多くの人に見てもらうという点では、最も優れている。しかし、それでどの程度、結果が得られるだろうか。
私が必要としているのは、批評や提案である。「これは良かった、悪かった」という一般的な感想ではない。「この部分の記述は間違っている、なぜならば……」とか、「この部分は文章に問題があり、理解できない。改善するためには……」という類の意見が欲しい。
とすると、希望者のみの登録制にしてもよさそうである。そのためには、MLのような仕組みが必要である。できれば、数MB程度のファイルをアップロードできるとなおよい。わざわざそんなインフラを自前で構築するリソースはない。すると、どこかのWebサービスを使うというのが、最も手軽だと思う。
さて、では、どこのサービスを使うかという問題だが、 Google Groups がなかなかよさそうだ。チャットが必要なら、Google Talkが使えるではないか。メールはGmailが便利だ。関係ないが、私はGoogle Readerなしのインターネットというのは考えられないし、ブラウザはChromeだし、検索はGoogleを使う。そもそも、ブログは、もちろんGoogle傘下のBloggerである。
思えば、私はかなりGoogleに依存している気がする。Googleひいきというわけではないのだが、便利なものは便利だ。
話がそれた。MLなどのWebサービスは、問題ではない。本当の問題は、どうやってボランタリーな査読者を集めるかということだ。広い分野から集めたい。とくに、意欲ある学生を集められないものか。結局のところ、プログラミングというのは、学生のうちに学んだ影響が大きい。とすれば、その学生の意見を聞きたいものだ。
金と時間は両立できない。本を書くためには金がいる。時間がなくては本がかけない。どうするか。
結城先生みたいに、レビュアーさんを募集するとか?
ReplyDeleteなるほど、あの優れた本の背景には、やはりいろんな工夫があるんでしょうね。
ReplyDelete