Ian Joyner는 왜 C++ 언어를 강도높게 비판하나요
이언 조이너(Ian Joyner)는 그의 저서
『C++??: A Critique of C++』를 통해 C++가 현대 소프트웨어 공학의 원칙에 어긋나며 개발 효율성을 저해한다고 강하게 비판합니다. 그의 주요 비판 논거는 다음과 같습니다. 1. 과도한 복잡성과 일관성 부족
조이너는 C++를 "거대하고 복잡한 베헤모스(Behemoth)"로 묘사하며, 일관된 철학 없이 온갖 기능이 뒤섞인 결과물이라고 지적합니다.
Medium +1
- 기능의 파편화: 상충되는 수많은 기능이 혼재되어 있어, 개발자마다 서로 다른 하위 집합(subset)을 사용하게 되며 이는 코드의 이식성과 가독성을 떨어뜨립니다.
- 설계의 부재: 깨끗한 설계보다는 기존 C 언어와의 호환성을 유지하면서 새로운 기능을 덧붙이는 방식을 택했기 때문에 언어 자체가 누더기처럼 변했다고 주장합니다. Wikipedia +2
2. 소프트웨어 공학적 관점의 부재
그는 C++가 문제 해결 자체보다는 프로그래밍 언어의 세부 사항에 집착하게 만든다고 비판합니다.
Medium
- 추상화 수준의 혼선: OOP(객체 지향 프로그래밍)는 고수준의 개념적 설계를 지향해야 하지만, C++는 포인터나 메모리 관리와 같은 저수준 제어를 강요하여 개발자의 인지적 부담을 가중시킵니다.
- 안전성 결여: 보안이나 메모리 안전성에 대한 고려가 부족하며, 개발자의 "실력"에만 의존하는 방식이 수많은 버그와 시스템 충돌을 야기한다고 봅니다. Reddit +3
3. "신화"에 대한 반박
조이너는 C++가 객체 지향의 정답이라는 업계의 인식을 "C++ 신화(C++ myth)"라고 부르며 비판합니다.
FreeTechBooks
- 성능 지상주의의 함정: 성능을 위해 안전성과 유지보수성을 포기하는 설계 철학이 대규모 시스템 개발에서는 오히려 "허리에 10kg 무게추를 달고 수영하는 것"과 같은 방해 요소가 된다고 비유합니다.
- 대안 제시: 그는 Eiffel이나 Java와 같은 보다 "순수한" 객체 지향 언어들과 비교하며, 기술적 결함이 적은 대안이 존재함을 강조합니다.
결론적으로 조이너의 비판은 C++가 "문제 해결(Problem-oriented)"이 아닌 "코딩(Coding-oriented)"에 치우쳐 있어, 진정한 의미의 소프트웨어 공학 발전을 가로막고 있다는 점에 집중되어 있습니다.
Medium +1
댓글 0