C++の設計と進化
C++の設計と進化 (asin:4797328541) 何とか読了した。時間がかかった。濃過ぎて一気に読めなかった。
ソフトウェアのソースコードを理解するには、そのソースコードの設計思想を知ることが大事だというが、その言語を使うなら、その言語の設計思想を知ることが大事だということだろう。この本には C++の設計思想と何故そう作られたのかが書かれている。
第4章「C++言語の設計ルール」から引用。C++のコードを書く前に暗唱したい(笑)。
目標
一般的ルール
アプリケーションの設計をサポートするためのルール
- 健全な設計方針をサポートする
- プログラミングを組織化するための機能を提供する
- やりたいことを書く
- 経済的可用性
- 誤用を恐れない
- 別々に開発された部品からのソフトウェアの構築をサポート
言語技術的なルール
- 静的タイプチェックに対する暗黙の侵犯がない
- ユーザ定義タイプにも内蔵タイプと同格の良質なサポートを提供する
- ローカリティの尊重
- 順序依存性を避ける
- 同じ機能なら人に教えやすい方を選べ
- シンタクスは重要だ(ときには悪い意味で)
- Cのプリプロセッサを使わないようにする
低レベルプログラミングをサポートするためのルール
C言語とは別ではなく、あくまでインクリメント、ベターな C。既存のCに対して、オブジェクト指向っぽいこと・データ抽象化らしいことを実現した言語。現実解。諦めが肝心。
しかし、完全じゃないから、悩んで泥沼に陥るんだろうな…。
「誤用をおそれない」なんかはシビレル。甘美な誘惑だ…。汚い実装を、どうしようもない時の最後の手段として認めているのは、心強い。(それによる副作用を知った上で)
http://japan.cnet.com/news/ent/story/0,2000047623,20083118,00.htm
■「C++の重要性は高まっている」:同言語の生みの親が主張
なんて記事があるが、最重要な(そして恐らく永久不滅な)低レベルプログラミング言語 C と寄り添っている限り、 C++の必要性は変わらないだろう。低レベルなソフトウェアを開発する必要性はどんどん減っていくだろうけど、低レベルなソフトは決して無くなる訳ではない。
ユーザが増えるかどうかはまた別問題。(低レベルなソフトを書く必要が無くなっているので、割合としては減るだろう)