24b0d121e09c28a8699fe8b115ef046f5c489999ac






이안 조이너(Ian Joyner)의 "C++??: A Critique of the C++ Programming Language"는 C++의 설계와 복잡성을 깊이 있게 비판한 대표적인 문헌입니다. 
검색 결과에 따르면, 이안 조이너의 비판은 주로 3판(1996년)을 중심으로 논의되고 있으며, 그 이후 현대적인 C++(C++11, 14, 17, 20 등)가 등장했음에도 불구하고, 그가 제기한 근본적인 설계 결함에 대한 비판은 여전히 'C++에 대한 훌륭한 균형 잡힌 시각'으로 인용되고 있습니다. 
Medium +4
조이너가 제기한 주요 비판 내용은 다음과 같습니다.
1. 근본적인 설계 문제
  • C와의 결합: C++는 C의 단점과 복잡성을 그대로 계승하고 있으며, 현대적인 프로그래밍 패러다임을 온전히 수용하지 못하고 단순히 C 위에 객체지향 기능을 얹은(thin veneer) 형태라고 비판합니다.
  • 비정상적인 복잡성: C++는 배우기 너무 어렵고 복잡하며, 이는 언어의 기능이 지나치게 많기 때문이라고 지적합니다.
  • 저수준 구조: 높은 수준의 객체지향 언어임에도 불구하고 포인터와 같은 지나치게 낮은 수준의 구조를 허용하여 안전성을 해친다고 봅니다. 
2. 유지보수 및 안전성 문제
  • 유지보수의 어려움: C++로 대규모 소프트웨어 시스템을 개발하는 것은 마치 10kg짜리 추를 허리에 달고 호수를 헤엄쳐 건너는 것과 같다고 비유하며, 유지보수와 이식성이 떨어진다고 주장합니다.
  • 안전성 부족: 포인터 연산, 메모리 관리 등에서 발생하는 'trap'이 너무 많아 개발자가 실수하기 쉬운 환경을 제공한다고 지적합니다.
  • 가비지 컬렉터 부재: 자동 메모리 관리 기능이 없어 메모리 관련 버그에 취약하다고 봅니다. 
    Medium +4
3. 현대적 대안의 필요성
  • 더 나은 언어의 존재: 조이너는 Eiffel(에펠) 언어를 선호하며, C++ 대신 더 순수한 객체지향 언어(Java, Eiffel 등)를 사용해야 한다고 주장합니다.
  • '문화'로서의 비판: C++ 팬들이 비판을 기술적인 문제로 받아들이지 않고 '숙련도 부족'으로 치부하는 것을 비판하며, 도구의 문제점을 명확히 인식해야 한다고 말합니다. 
    Medium +2
4. 현대 C++에 대한 지속적인 관점 (11, 14, 17 등)
이안 조이너는 최근(2025년) Medium 등에서 다시 C++에 대한 의견을 밝히며, "C++는 나쁜 언어"라는 입장을 유지하고 있습니다. 
Medium
  • 현대 C++도 문제: 현대 C++가 더 나아졌다고 하지만, 여전히 과거의 설계 결함(Legacy)을 안고 있으며 오히려 복잡성만 가중시켰다고 주장합니다.
  • "C++는 죽지 않는다, 다만 더 복잡해질 뿐": C++의 옹호자들은 여전히 성능을 강조하지만, 개발의 생산성과 안전성을 희생하고 있다고 비판합니다. 
    Medium +4
요약하자면, 이안 조이너의 비판은 C++가 제공하는 성능과 자유도보다는, 그로 인해 발생하는 막대한 복잡성과 유지보수의 어려움에 초점을 맞춘 '소프트웨어 공학적 관점'의 비판입니다.