疑われる「C++」の安全性、今後の動きはどうなる
コメント
注目のコメント
他の方も書かれていますが、C/C++はメモリ管理まで自作できるからこそ複数の言語やシステムのベース言語であるのだと思います。アセンブラに限りなく近いプログラミング言語であることが存在価値の一つです。
メモリが高速化しても大容量化も並行して進み、多く呼び出される基礎処理に検証機能を付けると当然処理は遅くなっていきます。安全性能といいますが、仮に1µsの間にコマンドを割り込ませるようなほぼ実行不可能なセキュリティホールのためにCPU-メモリ間のやり取りの速度が30%ダウンしているとしたら多くの人がそのチェック関数を外せるなら外すでしょう。
個人的にはその辺りはECCなどのメモリ機能で必要なシステムが採用すべきであり、プログラム言語の安全性という表現をすべきではないと思います。そもそもメモリ管理の知識のない人が使うべきではない言語です。書ける人が書けば良い言語であり、他の言語でその恩恵を享受できる構造になっています。CやC++はメモリ管理を開発者がする言語なので、メモリ安全性は開発者の腕にかかってくる。メモリ安全性を重視するのならば、C#やJava等の自動メモリ管理ができる言語を使う方が良い。処理速度はC++の方が早いので、使い分けが大事。
やったことある人ならわかると思いますが、c++を安全に使いこなすのは超難しいです。実行速度は最速クラスなんですけどね。
c++が使用されるケースは組み込み系開発やコンシューマ系のゲーム開発(メモリや処理速度がシビアな環境)などが挙げられますが、逆に言えばそれら以外ではc++を使うべきではないように思えます。