2010-05-11

進まない

C++0x本の執筆が、遅々として進まぬ。ブログを更新する暇がないくらい、取り組んでいるというのに、肝心の文章は、さっぱり進まぬ。とかくにBasic conceptsは難しい。

結局、完全に正しい詳細というのは、規格の文面の直訳に成り下がってしまう。それなら、規格を読むに如かずと言われたら、立場がなくなってしまう。私は、自然言語の正しい翻訳などということは不可能だと考えている。

件のプログラミング雑誌を創刊するにあたり、Bjarne Stroustrupへのインタビューを敢行した。詳しくは、6月頃に発行される雑誌をみてほしいが、このインタビューでは、C++の教育に関して、BSへ意見を求めている。BSは、あまりに深い詳細を解説するのは無駄であると答えた。何でも、詳細を理解することは可能だが、仮に理解したところで、現実のプログラミングの能力が上がるわけではない。言語の詳細は、必要なだけ理解しておけばいい。ということであった。

実際、BSの考えは正しかったと、いまさらになって痛感している。規格で定義されている、本当に正しい厳密な詳細は、C++コンパイラや、STLやBoostを書くのでもない限り、現実のプログラミングでは、まず役に立たない知識だ。

もう一つ懸念しているのは、私の執筆に対する意欲が、どうも上がらないということである。これは、結局、私自身は、C++の言語自体に対する参考書を必要としていないというのが、原因なのだろう。私は、C++について、何か疑問の生じることがあれば、まず規格を確認する。誰か他人の書いた参考書ではないし、ましてや、自分の書いた文章でもない。私は、STLのクラスだとか、クラスのメンバーなども、参考書などではなく、規格を参照して使う。

というわけで、私が読む参考書というのは、規格ではカバーしていない部分、つまり、プログラミングのテクニックやアルゴリズム、あるいは、規格の文面には載っていない歴史的経緯といった類の本になる。つまり、今私の執筆している言語機能を解説する本は、私自身は、特に必要としてないのである。これでは意欲の維持が難しい。

しかし、世は、言語機能を解説する本を必要としている。ここで誰か、規格をかじっていて、実務経験も豊富な真のプログラマが、私のかわりに本を書いてくれるのが、最良なのだが、なかなか、そういうことにはならないようだ。

やるしかないのか。

3 comments:

  1. 規格書を補完する資料として使える参考書は欲しいなあ、と思います。
    たとえば、規格書では文で列挙されている部分、あれが整理された図や表になってると嬉しい。
    あるいは「この概念については規格書のどこどこを読め」というのが豊富で、逆引きに使える参考書なんてのも嬉しいですね。

    #まあなんにしても、出たら買うつもりでいますが。

    ReplyDelete
  2. Declarators まででいいんじゃないだうろか。
    その辺までの丁寧に解説された本でいい気がする。
    最後まで行こうとすると気が遠くなるだけだ。
    というか、
    9章(クラス)以降は意外に具体的で(俺は)わかりやすいし、
    8章までは自分でわかったつもりでいても
    実はそうじゃないことも(俺は)あったから。

    クラスの説明が出てこないC++解説書
    というのもあっても悪くはないと思う。

    ReplyDelete
  3. 規格がなぜこうなっているのかとか、どうしてこの規格があるのかとか、そういうことを判りやすく説明すればいいんじゃないですかね。
    そもそも,規格が完璧に読めない人に対する本じゃないですか。読める人ばかりなら不要なものですし。

    あと、時間について2点:
    そして判らない部分は誰かに聞くか、考えても判らないなら素直に判らないと書くか、「ここの説明はない」と書かないと進みません。
    あと、完全版を目指すのはやめた方がいいと思います。これも執筆時間を食い過ぎる原因です。
    この2点に気をつけないと、たぶんずっと出せませんよ。

    ReplyDelete

You can use some HTML elements, such as <b>, <i>, <a>, also, some characters need to be entity referenced such as <, > and & Your comment may need to be confirmed by blog author. Your comment will be published under GFDL 1.3 or later license with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.