人生を書き換える者すらいた。人生を書き換える者すらいた。»2010.08.13C++は何を間違えたのか以前Webで見かけたプログラミングの魔導書というのを買い、ちょこちょこ読み進めて今日終わった。タイトルはなんかものものしいが、単にC++のマニアックな話題が詰まった本である。新仕様のc++0xの解説もちょっとあるが、いよいよ変態の領域にきている。ムーブコンストラクタなぞとても使いこなせる自信がない。いま思い返せば、C++はテンプレートの病的な使い方にフォーカスしてきたあたりから風向きがおかしくなってきた気がする。テンプレートはうまくキマれば格好いいのだが、メタプログラミングのレベルまでいくとコンパイルを通すだけでプログラミング本体と同等の思考力が必要なのがきつい。この本も変態テンプレートはたくさん出てくるが、テンプレートでどこまでできるかの追求自体が目的化していて本末転倒である。読み物としては面白いし、他の言語なら実行時にしか分からないエラーがC++ならコンパイル時に分かる!というのはメリットではあるが、結局UnitTestを書く手間を考えると実行時にしかわからなくても特に害はないからな。1994年のことであった。Unruhなる者が、ある、興味深いコードを示した。そのコードは、コンパイル時に、テンプレートのインスタンス化を用いて、素数を計算するというものであった。これが、記録に残る初めての、テンプレートを用いた、メタプログラムのコードであった。Unruhの本来の意図は、メタプログラミングの可能性を示すものではなかった。彼は、テンプレートを用いて、コンパイル時に計算するようなコードが書けることを、危険だと考えていた。それ故、彼は、コンパイル時に素数を計算するコードを示して、以てテンプレートの危険性を周知させようとしていたのであった。Bjarneその他の者は、むしろ素晴らしいと、絶賛した。彼は、この意外な反応にひどく驚いたという。これが方向性の歴史的誤りだったよな。C++はこういうのではなく、2パスコンパイルにしてヘッダファイルを不要にしたり、GCを言語レベルでサポートしたりすれば今頃の情勢は違うものになったかもしれないのに、結局JavaやC#の外見的な言語仕様のベースになっただけなのはちょっとさびしい。10年前は何万行もC++でコーディングしてたのに今や皆無、むしろObjective-Cをよく書くようになっているのは何とも不思議な話である。安くて物理的な場所を取らないPDF版を買ったのだが、iPadで読むとページによってはクラッシュしてしまう。これがビューアの問題なのかiOSレベルでの問題なのかは不明。10:03私はプログラマーじゃないので、経済や相場の話も聞きたいです。異種業界の話は雑学としては面白いけど、それ止まりですから。雑音は無視して、日本破綻に向けたポジションの作り方など、うかがってみたいです。前回の補足+政治ネタ。