대부분의 Linux 프로그램이 C로 작성된 이유는 무엇입니까? 왜 최신 C ++로 작성되지 않습니까?
답변
이에 대한 많은 토론이있었습니다. 주로 그 이유는 철학적 인 것입니다. C는 시스템 개발을위한 간단한 언어로 개발되었습니다 (응용 프로그램 개발은 그리 많지 않습니다). C ++ 사용에 대한 많은 주장이 있지만 C ++을 사용 하지 않고 C를 고수하는 것에 대한 많은 주장이 있습니다 .
결국, 그것은 역사적인 문제입니다. 대부분의 응용 프로그램 내용은 C로 작성됩니다. 대부분의 커널 내용은 C로 작성되기 때문입니다. 그 당시 대부분의 내용은 C로 작성되었으므로 사람들은 원래 언어를 사용하는 경향이 있습니다.
이 시점에서 누군가가 “OK, 왜 커널 이 C로 작성되고 C ++로 포팅되지 않습니까?”라고 물을 수 있습니다. . 이것은 얼마 전에 커널 트랩 에서 논의되었습니다 . 이 글에서 인용 할 수있는 좋은 설명 중 하나는 yoshi314 의 답변입니다 (직접 인용).
거의 모든 c ++ 앱이 작동하려면 별도의 c ++ 표준 라이브러리가 필요하기 때문입니다. 그래서 커널에 포팅해야하고 어디에서나 추가적인 오버 헤드를 기대해야합니다.
c ++는 더 복잡한 언어이므로 컴파일러는 더 복잡한 코드를 작성합니다. 이 때문에 c에서 코드 오류가 아닌 컴파일러 버그에서 문제가 발생한다는 것을 알았습니다.
또한 c 언어는 더 기본적이며 어셈블리 표현을 따르는 것이 더 쉽습니다. 종종 예측하기 쉽습니다.
c ++는 다재다능하지만 c는 저수준 또는 포함 된 것들에 더 적합합니다.
반면 “리눅스 프로그램의 대부분”은 오해의 소지가 있습니다. 그래픽 응용 프로그램을 살펴보십시오. 파이썬은 특히 Linux의 GUI 환경에서 점점 더 발전하고 있습니다. Windows 및 .NET에서 발생하는 것과 동일한 내용입니다.
답변
리눅스 제작자 Linus Torvalds에서 다음 이메일을 읽은 후 위의 답변이 잘못되었다고 생각할 수 없습니다. 그는 C ++ 프로그래머가 좋은 시스템 프로그래머 가 아니라고 생각하는 것 같습니다 . 그리고 C ++의 추가 기능은 종종 단기적으로 얻는 이점에 비해 장기적으로 더 많은 문제를 유발합니다. 그에게 동의하지 않을 수도 있지만, 그가 리눅스 운영 체제에 미친 영향을 과장하기는 어렵습니다.