SSブログ

興味・関心のあるプログラミング言語は C++ [プログラミング]

あなたが最も興味・関心のあるプログラミング言語はどのような言語ですか?
http://dev.ariel-networks.com/modules/xfsection/article.php?articleid=45

私は、C++ です。C++ は、言語実装の百科事典だと思います。
(それを仕事に使うかどうかとか、その言語が優れているかどうかなんてことは、関係ありませんよね?)
正確にはプログラミング言語 C++ というより↓この本なのかもしれません。
http://www.amazon.co.jp/exec/obidos/ASIN/475611895X/250-4786061-1798656

もう10年以上も(つまり、第3版よりも前から)読破しようと思っていますが、いまだに読み終わりません。
時々、思いついたように1章から読み始めて途中で挫折します。
しかし、何回読んでも C++ って、C のセマンティックスを壊さないで、かつ const とかポインタとかリファレンスとか演算子のオーバーロードとか、テンプレートとか、STL とか・・・すべてがうまく関連し合って複雑なコンセプトを安全に表現できるようになっていているなぁと関心してます。
(それを、私が実践できるかどうかとは別ですよ!)
章の頭にある格言もおもしろいです。この格言だけでも読む価値あります。
http://www.ascii.co.jp/books/detail/4-7561/4-7561-1895-X.html
にあるページサンプル PDF の2章まででざっと一通り C++ の説明をしているので、
雰囲気はわかるでしょう。早大生には、ここだけでもぜひ読んでほしいと思います。

Java とか、Python とかがいろいろな点で C++ の影響を受けていることがわかります。
(私も含めて)C++ で仕事をしない人も、いろいろ勉強になるはずです。
Zope のソースにも、なんとかSet とか、なんとかMap とかいうクラスがありますが、
set、map、イテレーターなんていう言葉も、STL で初めて一般的になったんだと思います。
(GoF を見て、イテレーターが実装されたなんてことないですよね?)

ちなみに、第4部 (23~25章)は、C++ を知らなくても読めます。
手元に、この本がある人は読んだほうが良いです。多くの教訓が得られると思います。
私は、(ここの分だけは先に)もう何回となく読みました。

アーリーバインドなコンパイル言語でありつつ、仮想関数を関数ポインタテーブルへの
ポインタ(あーややこし)を使って実装したりして、(さらにそれが、COM に使われていたりして)
使うという面だけじゃなくて、内部でどう動いているかを想像するだけでも、すごいなぁと思います。
一時期絶版になっていた ARM がまた買えるらしいです。これも読んでみたいです。
http://www.cabinetwork.jp/blog/archives/000325.html

最近は「C++の設計と進化」なんて本もあるみたいですね。
http://www.amazon.co.jp/exec/obidos/ASIN/4797328541/
読みたい本がどんどん増えます。

ちなみに、C++ を仕事に使ったこともありましたが、MFC のフレームワークを使っただけで、
たしか、STL の実装のない VC++ 4.0 とかそんなバージョンだったような気がします。
後に、STL の割とちゃんとしたバージョンも使えましたが、メンバーが(自分も含めて)
ついてこれなさそうだったので、STL を本格的に使ったことはありません。
(MFC もついてこれなくて、シリアライズとかが面倒だったというのもあったと思います)

STL はさておき、const * & を有効に使うことができなかったようにも思います。
#いつも、「えーっと、この場合は const なのはポインタの値(アドレス)か?中味か?」
#って言いながら、わからなくなって const を付けるのをやめていたような・・・

きっと、若いころの大谷さんぐらい頭が良くないと使いこなせないのでしょう。
長くなりましたが、結局↑これが言いたかっただけなのだと思います。


nice!(0)  コメント(0)  トラックバック(1) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

Facebook コメント

トラックバック 1