Hatena::ブログ(Diary)

A.R.N [日記]

2005/02/16 (水)

C++はなぜ人気がないのか

 C++はなぜ人気がないのかを含むブックマーク  C++はなぜ人気がないのかのブックマークコメント

こんなアホなことを言う人はいい加減死に絶えて欲しいんだが。ポアするぞポア(^_^;

膨大でころころ変わる言語仕様、安定しないAPI、互換性が維持し難い仕様上の問題、消えないメモリリークとバッファオーバーフロー、実装の多重継承。さらに言語仕様を覚えるだけではまともなプログラムなど書けないため、最低限Effective C++など必須書籍数冊を読破したうえ、STLを習得して初めて土俵に立てる。そんな言語がすばらしいなど、よく言えたものだ。

C++がいまだに使われているのは単に歴史上の理由であってそれ以上のものではない。すばやく打てないよう設計されたQWERTY配列キーボードが使われるのと同じことである。QWERTY配列のキーボードが使われ続けたり、C++が使われ続けることにより発生したこの数十年の生産性の低下を考えるとぞっとする。

一日でも早くC++という単語を見ない日がやってくるといいのだが。

ゴキブリ28号ゴキブリ28号 2005/02/17 04:43 面白いですね。プログラミングはまったくの素人です。しかし、「人気がない」としたらそれはC++にご指摘なような問題があるからなのでしょう。その意味では市場は正直です。

一つ関連してかねがね思っていた疑問です。QWERTY配列が他のもの、たとえばDVORAKに劣るというのはよく聞くのですけど、はてなの用語解説にあるようにDVORAKのほうが3割も早いなんていうことがあれば、いかにスウィッチングに費用がかかるとしても、QWERTYは市場で不人気になって廃れていくと思うのですけど、どうなんでしょうか?

arnarn 2005/02/17 22:07 プログラミング言語もキーボード配列もOSと同じく「自分だけ変えると社会的に損をする」タイプのものですから、3割程度の性能向上じゃあスイッチングコストを越えらないんじゃないかと。

ひとり家の中だけで使えればいいですが、パソコンは仕事の道具だし、ネットカフェなんかもありますからねぇ。自分だけよければそれでいいというわけにもいかんでしょう。使う場所によってタイピング方法を変えなきゃならないと、それはそれで生産性の損失になるわけだし。

C++に関して言えば、(今はだいぶん変わりましたが)プログラミング言語のデファクト・スタンダードですし、Windows上でまともなプログラムを書くためには今でも必須です。好むと好まざると使わざるを得ない。仕事を取るか、良いプログラミング言語を取るかと言われれば、間違いなく前者ですからねぇ。

ゴキブリ28号ゴキブリ28号 2005/02/18 01:17 これは経路依存性についての標準的な説明なので、そんなものかと思いながらも、あえて疑問を呈しているわけです。私の疑問は、3割の向上という数字自体が本当なのか、という素朴なものです。このことについてarnさんにたずねるのは筋違いなのですけど、議論のためにお付き合いいただくと、本当なのかな、と。C++についても「今はだいぶん変わ」るとしたら、1)本当はDVORAKの性能はQWERTYとさほど変わらないか、2)たとえ経路依存性があっても時間がたつと市場にはそれを修正する要因があるのではないか、という推測です。もちろん市場で競争が行われていることが大事な要件ですけど。

arnarn 2005/02/19 07:35 調べてみると、DVORAK配列の有効性に関しては反論があるみたいですね。

QWERTY配列はなぜ普及したか
http://homepage1.nifty.com/cura/oya/kb_arguments.html

THE FABLE OF THE KEYS
http://www.utdallas.edu/~liebowit/keys1.html

しかし、上記の反論への疑念を示す文書もありました。

DSK配列の人間工学的特徴
http://www.ccad.sccs.chukyo-u.ac.jp/%7Emito/yamada/chap6/4/index.htm

Dvorak配列は本当に優れているのか?
http://www7.plala.or.jp/dvorakjp/dvorak_b.htm

一通り読んでみたんですが、どっちが正しいかは明確によくはわからないですねぇ。ただ、これだけ理論的に優位性が見出せるのに実際には1,2%しか優位性がなかったという結論は信じがたいところがあります(1割程度しか優位性がなかったとかならわかるんですが)。また、実験にAugust Dvorak本人が関わっていたというのも、通常この手の実験が研究者本人が行うことを考えれば、強力な反論とも思えないので「THE FABLE OF THE KEYS」を全面的には信じられないなぁというのが正直な感想です。

また、Web上で実際にDvorak配列へ乗り換えようと練習している人の見解を読む限りでは
1. タイピング速度は劇的には向上しない
2. タイピングによる疲れは驚くほど減少する
3. QwertyからDvorakへの移行はかなり大変
ということのようです。

# 昔、親指シフトのキーボードを使ったときに「これはすごい発明かもしれない」
# とか思ったことを考えるとキーボード配列の変更などは体感では結構違いがあって
# もおかしくはないかなぁとは思います

今までの実証実験はすべて1を基準にしていますが、2を基準にすると大きな違いが出るかもしれません。

C++が現在JavaやPHPなどに置き換わりつつある理由は、市場原理ではなくパラダイムの変化があったからです。5年ほど前までアプリケーションはクライアントマシンで動作するものでしたが、今はむしろWebアプリケーション全盛でサーバーサイドで起動すればよく、プラットフォームへの依存がなく、起動時間は遅くとも問題がなく、むしろセキュリティ面の扱いや開発期間の短期化が容易な言語に有利な状況となっています。だから、QWERTY経済学への反論としては使えないように思えます。

ゴキブリ28号ゴキブリ28号 2005/02/20 07:56 わざわざお調べくださり、ありがとうございます。The Fable of the KeysというのはThe Fable of the Beesをもじっているのでしょうね。

で、著者たちは本を書いているようで、論文もここに収録されているようです。
http://www.amazon.co.jp/exec/obidos/ASIN/0814751784/qid=1108850897/sr=1-3/ref=sr_1_8_3/250-2141789-4277869

参照されたところもざっと見てみました。確かにどちらかというのはなかなか判然としないようです。ただ、The Fable of the Keysは、さすが学術論文だけあって注もよく読むと、いろいろな議論をすでに予期していて、判断材料としてはこちらのほうが優れているという印象です。

1)数値については、各種の研究が参照されていますね。ドヴォラクが関与されたといわれている海軍研究(1944年)だけではなくて、推進派のあげている1952Australian Post Officeのもの(心理的抵抗感をのぞいたら成果がよくなった)、1973Oregon State Universityのもの(Dvorak方式はQwerty方式の97.6%にとどまった)も批判的に検討しているし、Miller and Thomas 1977、Nickells、Kinkheadなどのergonomicsなどもある。それでも、せいぜい6%とかで、20-40%という数字は出てこないようです。ergonimicsだから、arnさんのいう疲労感の少なさもきちんと研究していると思うのですけど、そのあたりはこの論文からはきちんと読み取れないのは事実。論文の最初のほうでは、Dvorakは早い、疲れにくい、習いやすいという効能があるといわれているが、と出発していますが。そのほか、19世紀末の競争の存在、タイピングコンテストの存在といった傍証も豊富で、なかなか面白いです。

2)当時の海軍中佐Dvorakが海軍の研究に関与したことについては、たしかにもしこれだけならば、反論としては弱いですね。しかし、これは著者たちも言っているように’other problems of credibility’なので、その前にまずその研究そのものが被験者の抽出などで問題があることをきちんと指摘しているわけです。

あとは、この論文そのものが1985年のDavid論文への反論ということを理解しないといけないでしょうね。たとえば20-40%という数字や、海軍研究を取り上げながら他をとりあげていないことへの批判がこの論文なので。その意味では、Davidの論文に少なからぬ疑問をなげかけたということは確かなようです。

そのせいか、最近でたKrugman and Wells, Microeconomicsでも、the Qwerty problemに触れて、’The evidence on keybords is mixed. Other layouts seem to be somewhat better. But a computer can be easily reprogrammed to use a diffenret keyboard layout, so if the gains from a switch were really large we would expect a widespread move away from the Qwerty layout; this hasn’t happend’ (p.534)といっています。

C++について。C++が市場で優位にたつ過程で、当時、技術的な制約条件を所与として(アプリケーションはクライアントマシンで動作するものといった)、C++と同等、ないしはそれよりも優れているプログラムは存在したのでしょうか。

KoichiYasuokaKoichiYasuoka 2005/02/21 00:16 本来C++の話のはずなのに、別ネタですみません。QWERTY配列が現在も生き残り続けている理由は、むしろ「生産者側の論理」にあるのではないか、と私は睨んでます。まあまだ、ちょっとはっきりしないところがあるんですが、この点に関して私の日記 http://slashdot.jp/~yasuoka/journal/ にツラツラと書き連ねていますので、よければごらん下さい。

ゴキブリ28号ゴキブリ28号 2005/02/21 01:01 >>訂正。DvorakはLt.Commanderですから海軍少佐でした。

arnarn 2005/02/21 02:23 Dvorakキーボードに関しては、多少宗旨変えをしたので、その旨を20日のエントリに追加しました。

KoichiYasuokaさんのエントリも読んで思ったのですが、結局Qwerty配列のキーボードが最適な製品というわけではない以上、DvorakがどうあれQwerty経済学の否定にならないかもしれないところがこの問題の微妙なところですね(まぁ代表例として好ましくないのは間違いないが)。

> C++と同等、ないしはそれよりも優れているプログラムは存在したのでしょうか。

プログラムではなくプログラミング言語だと考え、書きますとないわけではなかったという微妙な言い回しになります。異論があることを承知で言えばObjective Cでしょうか(生まれはC++より早かったはず)。

Objective Cは、Mac OS Xがこの言語で作られています(元となったNEXT StepがObjective Cで書かれていたため)。

C++は、C言語が標準化されたことにより成功したことを受けて、その後継言語として標準化団体の上で育成されていったという事情があるので、競争と言えるほどの競争があったかと言えば怪しいところがありますね。当初は、C言語互換の新言語ということで皆期待していたようですが、結果的にみんなが欲しい機能がすべて入ったごった煮の言語になってしまったという……

そういう意味でこっちはこっちでQWERTY経済学の例とはならないという……

ゴキブリ28号ゴキブリ28号 2005/02/21 02:50 この問題の難しいのは、検証がtrickyなところでしょう。1)代替的方式の効能比較と2)スウィッチング費用という二つの要素があります。普通のQwerty経済学は、1)について現状よりも優れた方式があり、かつ、2)が大きいのでたとえスウィッチングによって大きな効率性の改善が見込めたとしても、2)の存在によって阻止されてしまうとします。そこで、次に起きた論争が1)についての事実認定の議論です。1)についてもしも二つの方式が効率上無差別ならば、全体の議論が成り立ちませんから。クルーグマンの教科書は、1)効率上の差は良くわからん、しかし2)がそもそも低いのではないか、と議論しているわけです。長々とお付き合いいただきありがとうございました。

トラックバック - http://d.hatena.ne.jp/arn/20050216
Connection: close