Why I No Longer Like or Use C++

上を引用しておいて
http://prophipsi.blogspot.com/2008/03/why-i-no-longer-like-or-use-c.html
そういえば ABI 周りって C++0x 何か進展する見込みってあるっけ?

move semantics なんて C++ 以外じゃまず要らんとですよ

ま〜,少なくとも move semantics なんて値 (のコピー,もしくは箱モデル) をベースとする C++ 独特の概念だよにぇ〜.だから面白いとは思うんだけれど.他の言語においては参照 (名札モデル) をベースとするのが主流で,この概念は恐らく存在意義すら無いはずだから,他の言語勉強してもこの概念はたぶん表出してこないんだよにぇ.

汎用コンポーネントを書かない人間に右辺値参照の motivation を理解してもらうのはしんどいにゃー

かと言って, generic librarian だけが理解してりゃえーじゃんとかそういう開き直りは決して許されないわけで.何かここがどうにかならんかにゃーといっつも思うんだけれど.
library というのは再利用のためにあると思うのだけれど, library によって再利用されるのは主に実装であって,「動機付け」や「知識」といったものは極めて副次的にしか再利用されてないように常々感じるんだよにゃー.もちろん,テストされた実装を再利用できるだけでも多大な恩恵があるのは言うまでもないんですが.
ある library を真に使い倒そうと思うと,結局動機付けや知識は車輪 again というか,もちろん library の設計・実装過程で何らかの知識や動機付けの整理がなされることは大いに期待できるけれど, (たとえば, move semantics (への応用において利用される右辺値参照の特性) を,動機付けを整理せずに純粋に歴史的な流れだけで追おうとすると, Colvin-Gibbons trick やら MOJO やらが出てきて即,話が散逸してしまうよ!) 依然,動機付けや知識を library 実装側とほぼ同じコストで trace しないといけないと感じることが間々あるんですが,ま〜そんなおバカなこと感じてるの俺だけかにゃー.
#あー,っていうかこれ単に, leading edge に張り付こうとすると垂れ流されてくる未整理な情報を自身で整理しないといけない (他の誰かも絶対やってることのはずなのに!) ことに対して愚痴っているだけだにゃー.書籍は言うまでもなく,ネットですら「整理された」情報の共有が始まるのが遅い!遅すぎる!
#う〜,でも「整理された情報」って大なり小なり情報が落ちちゃってるし.にゅーん.

言語設計が適度に librarian 側から driven されるのはたぶん重要

そうそう,右辺値参照なんて明らかに librarian 側からの要請なんですよ.言語設計が適度に librarian 側から driven される,これ重要.ということで,新しく言語を作りたい人はとりあえず汎用な min/max 関数を美しく実装するための必要十分な言語機能を捻り出すところから始めると良いと思います!知らんけど! (無責任)

あー,効率は

効率に関しては,

ある特定の型 T に対するオリジナルのアルゴリズムがあって,これを汎用なアルゴリズムに書き換える.この汎用なアルゴリズムに対する,元の特定の型 T による特殊化は, T に対するオリジナルのアルゴリズムよりも非効率であってはならない.

これは,よーするに「抽象化によるコストを許さない」という言明と言っちゃって良いと思うんですが,なぜかこれを (C++ における) 汎用プログラミングの定義 (のあり方の1つ) として採用しちゃった人が居るんだよにぇ〜.