この質問は、「なぜ人々はまだ古いプログラミング言語を使用しているのですか?」ではありません。私はそれをよく理解しています。実際、私が最もよく知っている2つのプログラミング言語はCとSchemeで、どちらも70年代に遡ります。
最近、C99とC11対C89の変更について読んでいました(実際にCの最も使用されているバージョンであり、K&Rから学んだバージョンです)。周りを見ると、頻繁に使用されるすべてのプログラミング言語は、少なくとも10年に1回程度新しい仕様を取得しているようです。Fortranを使用しているほとんどの人がまだFORTRAN 77を使用しているという事実にもかかわらず、Fortranでも新しいリビジョンを取得しています。
たとえば、組版システムTeXのアプローチと比較してください。1989年、TeX 3.0のリリースに伴い、Donald KnuthはTeXは機能が完全であり、将来のリリースにはバグ修正のみが含まれると宣言しました。これ以上に、彼は彼の死の際に、「残っているすべてのバグが機能になる」と述べており、それ以上の更新は一切行われないと述べています。他の人はTeXを自由にフォークして自由にフォークできますが、結果のシステムの名前が変更され、公式のTeXとは異なることを示します。これは、KnuthがTeXを完璧だと考えているからではなく、50年後に同じことをする安定した予測可能なシステムの価値を理解しているからです。
ほとんどのプログラミング言語デザイナーが同じ原則に従っていないのはなぜですか?もちろん、言語が比較的新しい場合、落ち着く前に急速な変化の期間を経ることは理にかなっています。また、既存の疑似標準を体系化するか、意図しない読み取り値を修正する以上の小さな変更に、実際に誰も反対することはできません。しかし、10、20年経ってもまだ言語の改善が必要なように思える場合、すでに使用されているものを変更しようとするのではなく、単にフォークするか、最初からやり直さないのですか?Fortranでオブジェクト指向プログラミングを本当にしたい人がいるなら、その目的のために「Objective Fortran」を作成し、Fortranをそのままにしてみませんか?
将来の改訂に関係なく、C89はすでに標準であり、人々がそれを使用し続けることを止めるものはないと言えるでしょう。これは一種の真実ですが、意味合いには結果があります。GCCは、pedanticモードで、C99で非推奨またはわずかに異なる意味を持つ構文について警告します。つまり、C89プログラマーは新しい標準を完全に無視することはできません。したがって、C99には、言語を使用するすべての人にこのオーバーヘッドを課すのに十分な利点がなければなりません。
これは本当の質問であり、議論を呼びかけるものではありません。明らかに私はこれについて意見を持っていますが、現時点では、これがすでに行われている方法だけではない理由を理解しようとしています。質問は次のとおりです。
古い言語に基づいて新しい言語を作成するのではなく、言語標準を更新することの(実際の、または認識されている)利点は何ですか?
--std=x
スイッチなど)で呼び出すことができるため、新しい標準を作成すると、古いコードを不安定にするツールになるわけではありません。