Bjarne Stroustrup は C++ を安全なものとして擁護します

言語の作成者が作成した言語を擁護することは驚くべきことではなく、Bjarne Stroustrup の最新の論文も同様です。 NSA がプログラマーに C や C++ から離れて、C#、Go、Java Ruby、Swift を好むように言うのは公平ですか?

また、この背景には、C/C++ の安全な代替手段としての Rust の台頭もあると思います。 ここでのセーフとは、特にメモリセーフを意味します。これは、問題と脆弱性の大半がロジック関連ではなくメモリ関連であるため、非常に合理的です。

Stroustrup をこれほど動揺させたのは、NSA (国家安全保障局) のソフトウェア メモリの安全性です。

NSA のレポートには次のように記載されています。

「民間部門、学界、および米国政府全体にわたる包括的なソフトウェア コミュニティは、ソフトウェア開発の文化をメモリセーフ言語の利用に向けて推進するためのイニシアチブを開始しました。」

Stroustrup は、C++ の専門家が関与することなくこの観点に達したため、ソフトウェア コミュニティはほとんど包括的ではなかったと主張しています。 もちろん。 私たちは皆、時間と専門知識を投資した言語を擁護する傾向がありますが、私は長い間 C と、時には C++ でプログラミングしてきたため、多くの投資を行ってきましたが、C はメモリを備えた言語であることを認識しています。問題。 ローカル変数またはヒープ上の何かへのポインターを返すだけで、問題が発生します。 これらの問題に対処する唯一の方法は、それらを認識し、防御的にプログラムすることです。 これは C ではある程度簡単ですが、C++ でははるかに難しいと思います。 その理由は、C++ ははるかに複雑な言語であり、使用方法が非常に多いため、メモリ リークの条件を簡単に見逃す可能性があるためです。 結果として、C++ は C よりも作業するのが危険だと思いますが、反対のことを主張する人を知っており、Stroustrup もその 1 つです。

” …具体的かつ明示的に C と C++ を安全でないものとして除外します。あまりにも一般的であるため、C と C++ を単一のカテゴリ C/C++ にまとめ、30 年以上の進歩を無視しています。残念ながら、多くの C++ の使用も、安全性を劇的に改善する方法を含め、改善を無視している。」

私の意見では、安全性を向上させる追加は問題の一部であり、C++ を理解するのがさらに難しくなり、C++ で記述できるスタイルの数が増えるだけです。 過去に Stroustrup の本やほとんどすべてを読んだ後にコメントしたように、C++ は地球上で最もクリーンで安全な言語であると確信していますが、彼の影響から離れるとすぐに、すべてが退化します。 安全であるために静的分析と非常に熟練した警戒心の高いプログラマーを必要とする言語は、安全と呼ぶ価値があるでしょうか?

C++ を別の言語にするほど強力に使用方法をガイドするツールに依存させることで、C++ をより安全にするケースがあると思います。 これはもちろん、既存のコード ベースをどのように扱うかという問題を提起します。

Cは安全ではありませんか? – もちろん、それは私たちがそれを使いたい理由の一部です. 低レベルの抽象化こそが C を有用な言語にするものであり、このレベルではすべての失敗に責任があることを受け入れなければなりません。

C++ は安全ではありませんか? C以上ではないにしても、それは私たちがそれを使いたい理由ではありません。 C++ に移行するのは、マシンの現実から離れて自分自身を抽象化し、オブジェクトと型システムを構築したいからです。 この精巧さを制限し、メモリ管理を回避する理由はまったくありません。

詳しくは

行動を促すフレーズ: 「安全」について真剣に考えてください。 それからそれについて賢明なことをしてください

ソフトウェア メモリの安全性

関連記事

C++ は TIOBE の今年の言語です

Bjarne Stroustrup について C++ を学ぶ理由について

Bjarne Stroustrup は、ジェネリックを行うためのより良い方法があると考えています

Udacity で C++ を学ぶ

C++ の称賛 – ICPC 2013 での Bjarne

Google の Carbon はより良い C++ になろうとしている

I Programmer の新しい記事について通知を受けるには、毎週のニュースレターにサインアップし、RSS フィードを購読して、フォローしてください。 ツイッター、 Facebook または Linkedin。

バナー

ピコブック

コメント

または、コメントを電子メールで送信してください: comments@i-programmer.info

.

Leave a Comment

Your email address will not be published. Required fields are marked *