이 질문 은 "왜 사람들은 여전히 오래된 프로그래밍 언어를 사용합니까?" 나는 그것을 아주 잘 이해합니다. 실제로 내가 가장 잘 알고있는 두 프로그래밍 언어는 C와 Scheme이며 둘 다 70 년대로 거슬러 올라갑니다.
최근 C99와 C11과 C89의 변경 사항에 대해 읽었습니다 (실제로 가장 많이 사용되는 C 버전과 K & R에서 배운 버전 인 것 같습니다). 주위를 둘러 보면 사용량이 많은 모든 프로그래밍 언어가 적어도 10 년에 한 번 정도 새로운 사양을 얻는 것처럼 보입니다. 포트란을 사용하는 대부분의 사람들이 여전히 포트란 77을 사용하고 있음에도 불구하고, 포트란조차도 여전히 새로운 개정을 받고 있습니다.
이것을 조판 시스템 TeX의 접근 방식과 대조하십시오. 1989 년에 TeX 3.0이 출시되면서 Donald Knuth는 TeX는 기능이 완전하며 향후 릴리스에는 버그 수정 만 포함 할 것이라고 선언했습니다. 이 외에도 그는 죽을 때 "남은 모든 버그가 기능이 될 것"이라고 말하면서 더 이상 업데이트가 이루어지지 않을 것이라고 말했다. 다른 사람들은 TeX를 자유롭게 포크 할 수 있으며 그렇게했지만 결과 시스템의 이름이 공식 TeX와 다르다는 것을 나타내도록 이름이 바뀌 었습니다. 이는 Knuth가 TeX가 완벽하다고 생각하기 때문이 아니라, 50 년 안에 같은 일을 할 안정적이고 예측 가능한 시스템의 가치를 이해하기 때문입니다.
대부분의 프로그래밍 언어 디자이너가 왜 같은 원리를 따르지 않습니까? 물론, 언어가 비교적 새로운 언어라면, 언어가 정착하기 전에 급격한 변화의시기를 겪는다는 것이 합리적입니다. 또한 기존 의사 표준을 체계화하거나 의도하지 않은 판독 값을 수정하는 것 이상을 수행하지 않는 사소한 변경에 반대 할 수는 없습니다. 그러나 언어가 10 년에서 20 년이 지난 후에도 여전히 개선이 필요한 것 같습니다. 왜 이미 사용중인 언어를 바꾸려고 시도하지 않고 언어를 포크하거나 다시 시작하지 않습니까? 만약 어떤 사람들이 Fortran에서 객체 지향 프로그래밍을하고 싶다면, 그 목적을 위해 "Objective Fortran"을 만들고 Fortran 자체 만 남겨 두지 않겠습니까?
향후 개정에 관계없이 C89는 이미 표준이며 사람들이 계속 사용하지 못하게 막을 수 있다고 생각합니다. 이것은 사실이지만 내포는 결과를 초래합니다. GCC는 페단 틱 모드에서 더 이상 사용되지 않거나 C99에서 미묘하게 다른 구문을 경고하므로 C89 프로그래머는 새로운 표준을 완전히 무시할 수 없습니다. 따라서 C99에는 언어를 사용하는 모든 사람에게이 오버 헤드를 부과하기에 충분한 이점이 있어야합니다.
이것은 논쟁의 권유가 아닌 실제 질문입니다. 분명히 나는 이것에 대한 의견을 가지고 있지만, 지금은 왜 이것이 왜 일이 이미 수행되었는지 아닌지 이해하려고 노력하고 있습니다. 나는 질문이 다음과 같다고 생각한다.
구식 언어를 기반으로 새로운 언어를 만드는 것과는 달리 언어 표준을 업데이트하면 얻을 수있는 실질적 이점은 무엇입니까?
--std=x
스위치) 을 시행하는 스위치를 사용하여 많은 컴파일러를 호출 할 수 있으므로, 새로운 표준을 만들면 더 오래된 코드를 불안정하게하는 도구가되지 않습니다.