
ほとんどのLinuxプログラムがCで書かれたのはなぜですか?最新のC++で書かれていないのはなぜですか?
答え1
これについて多くの議論がありました。主に哲学的な理由による。 Cは、アプリケーション開発ではなくシステム開発のための簡単な言語で開発されました。 C ++の使用に関する多くの引数がありますが、C ++の使用に対する引数もたくさんあります。いいえC ++を使用してCに固執します。
結局これは歴史的な質問である。ほとんどのカーネルエントリはCで書かれているので、ほとんどのアプリケーションエントリはCで書かれています。それ以来、ほとんどのコンテンツはCで書かれており、人々は元の言語を使用する傾向があります。
この時、誰かがこう尋ねます。「わかりました、それではなぜ?コアC ++に移植せずにCで書かれていますか? 」。この議論されたカーネルトラップへ電子。このスレッドで引用できる良い説明は次のとおりです。ヨシ314から(直接引用):
これは、ほぼすべてのC ++アプリケーションを実行するために別々のC ++標準ライブラリが必要なためです。だから彼らはそれをカーネルに移植し、どこでも余分なオーバーヘッドを期待しなければなりません。
C++ はより複雑な言語です。つまり、コンパイラはC ++でより複雑なコードを生成します。このため、Cでは、コードエラーではなくコンパイラエラーが原因で問題が発生することを簡単に見つけることができます。
C言語はさらに基本的であり、アセンブリ表現に従うのがより簡単です。これはしばしば非常に予測可能です。
c++ はより一般的ですが、低レベルまたは組み込み操作には c が優れています。
一方、「ほとんどのLinuxプログラム」はかなり誤解を招く。グラフィックアプリケーションを見てください。 Pythonは特にLinuxのGUI環境で人気が高まっています。 Windowsと.NETでも同じことが起こります。
答え2
Linux クリエイター Linus Torvalds から次のメールを読んだ後。上記の答えが間違っているとは思わないかもしれません。彼はC++プログラマーが良くないと思うようです。システムプログラムメーカー。さらに、C++ のアドインは、短期的に発生するよりも長期的に多くの問題を引き起こす傾向があります。一部は彼の見解に同意しないかもしれませんが、彼がLinuxオペレーティングシステムに与える影響はいくら強調しても過度ではありません。
答え3
Cの使用に関する技術的なトピック 以下にはLinuxシステムの分散化、Windowsは厳密に集中化されているということ(ADなど)があると思います。 Linuxは世界中の多くの人々によって作られており、ADのようなツールはありません。 OpenLdapがありますが、Linuxでは、すべてのプログラムがスタンドアロンアプリケーションとして実行されます。もちろん、歴史的な理由が最も重要です。 LinuxがObject C ++で書かれている場合、誰がオブジェクトアプリケーションのセキュリティに興味を持っているのか想像できません。