ほぼひと月前から初めて、半分消化しましたが、
https://isehara-3lv.sakura.ne.jp/blog/2022/02/15/通読してみることにした/
なぜc++が習得が難しいと言われているかを自分なりに理解したこと。
<ハードウェアを扱う機能と抽象的なオブジェクト指向が合体しているから>
コードの品質と生産性を高めるためにはオブジェクト指向が必須だけれども、そこにハード資源を効果的使うという要件も必要条件になっているから、仕様が複雑化。具体的な例で言えば、例えばポインターの概念がオブジェクト指向の中にも拡張されているからと言えるのではないか。もちろんガーベージコレクションなどの概念も無くてリソース管理が全てプログラマの責任というのは、これはc++に限らずcでもハードウェアを扱う言語の本質的かつ必要条件でもあるけれども。
<モダンナイズはされて来ている>
特に最近の言語仕様の拡張で、コンテナクラスを標準で使うなど現代的になって来ていると思う。しかし行き着くところはcの殻とc++の殻がそれぞれ独立することはできないからお互いに融合した言語仕様のままであることは変わらないように思う。
極端にハードリソースの限られるデバイス、OS開発などではc++以外に代替え手段のない言語だから、この先も複雑化していくことは間違い無いんじゃないかと言えます。
admin