これは、Microsoft がマネージ コードの概念を広めるために大々的に宣伝している .NET CLR に関するものではないことに注意してください。ほとんどの人は、マネージ コードがかなり前から存在しており、ロケット サイエンスとはあまり関係がないことを知っています。
私が知りたいのは、コンピュータの進化におけるランタイム セキュリティの概念が遅れて登場した理由です。
これは、「なぜ最初の T 型フォードにエアバッグとシートベルトが装備されなかったのか?」と尋ねるようなものです。しかし、既知の危険から身を守ることは人間の本能の範囲内であるため、この問題の関連性は依然として残っています。たとえば、最初の T-Ford は、エアバッグの研究を動機付けるほどの速さではありませんでした。人々が致命的な判断ミスを頻繁に犯すほど速く進まなかったので、多くの国でシートベルトが法律および標準として動機付けられました.
コンピュータの進化では、ほとんど逆です。私たちはアセンブラーから始めました。これは、眼帯を付けて時速 200 マイルで T フォードを運転するのと同じです。この時代の何人かの年配のトラック運転手と会話することができて、アセンブリ コードの手作業による組み立て、ヒューマン デバッガー、コードのグリリオン行などについて話を聞くことができました。ブルースクリーンで。何十年も前に、ハードウェアが損傷してしまう可能性がありました。しかし、それは私にとっては謎です。何十年もの間、クラッシュの痛みを軽減するために私たちが行ったのは、ブルースクリーンだけでした (MS を原型として使用して申し訳ありません)。
既知の危険から保護することは人間の本能の範囲内にあるだけでなく、エラー チェック、メモリ診断、ロギング フレームワーク、バックアップ メンテナンスなどの一般的な機能を自動化およびシステム化することは、プログラマの本能の範囲内でもあります。
プログラマー/人間は、システムにフィードするコードがシステムに害を与えないようにするタスクを自動化し始めなかったのはなぜですか? はい、もちろん、パフォーマンス. しかし、これは、真剣に浸透するハードウェア標準よりもずっと前のことです。「マネージ コード」を容易にするために、バス アーキテクチャと追加のプロセッサを備えたマザーボードを設計しなかったのはなぜですか?
モデル T フォードが十分に速くないという比喩はありますか?