Quora의 If C and C++ give the best performance, why do we still code in other languages? 글에 대한 Alexandre Strube님의 답변입니다.


저(Alexandre Strube)는 전세계의 슈퍼컴퓨팅 연구소 중 하나에서 일하고 있습니다. 성능에 관해서는 저의 완벽한 전공과정 중 하나이며, 박사 학위이기도 합니다.

저의 사용자들은 대개 포트란, C, C++ 그리고 파이썬에서 코드를 짜곤 합니다. 아무도 연산 작업 코드를 Java, Ruby 혹은 PHP에서 작성하지 않습니다.

제가 당신에게 하나 말해두도록 할게요: 최악의 악몽과 같은 성능 최적화는 C++입니다. 당신이 예상한 것과 그리 다르지 않습니다. 그리고 그것은 코드가 어느 지점에서 이상하게 동작하는지 특정하기가 매우 어렵습니다. 부스트(boost), std 라이브러리, 템플릿 생성, 컴파일 버그 또는 마침내 코드 자체가 버그가 될 수 있습니다.

다른 선택지로 C는 매우 개방적이며 확장성이 있어 그 자체로 위험합니다. 모든 일이 일어날 수 있습니다.

포트란 코드는 다른 것들보다도 빠르고 효율적입니다. 또한 사용자 입장에서의 오류가 적기도 합니다. 런타임은 간단하지만 C에서의 메모리 관리와 저희에게 있어 가장 최악인 Null-terminated 문자열과 같은 것들로 당신을 방해하지 않을 것입니다.

파이썬은 동작하면 대부분의 코드가 C 또는 어쎔블리(ASM)보다 빨리 실행되지는 않을 것입니다. 그래서 가장 좋은 해결책은 파이썬에서 코드를 짜는 것입니다. 생물학자들이 스스로 관리할 수 있으며 C의 main loop에서 중요한 부분만 최적화하면 됩니다.

백만 개의 스레드가 있을지라도 성능 전문가와 비교해도 시간 당 CPU 사용은 저렴합니다.

반대로 C++는 근본적으로 언어로써 망가졌습니다. 한 번 다음 문서를 살펴보세요: C++ FQA Lite: Defective C++