Ask HN: 아직도 C++로 코딩하는 게 즐거우신가요?

Ask HN: Do you still enjoy coding in C++?

최근 몇 년간 C++은 복잡성과 (인식된) 기능 과잉으로 많은 비판을 받았습니다. 하지만 저는 C++11 이후로 엄격한 타입 시스템( const 포함), 범위 기반 for 루프, 스마트 포인터, 그리고 템플릿으로 할 수 있는 많은 것들 덕분에 C++ 작성이 정말 즐거웠습니다. 반면에 올바른 반복자를 작성하거나 rvalue 참조 처리를 제대로 하는 것, 템플릿이 포함된 오류 메시지를 읽는 것이 매우 까다로울 수 있다는 것도 알고 있습니다. 그래서 여러분은 C++ 소스 코드 작성이 즐거운가요, 아니면 싫으신가요? 그 이유는 무엇인가요?

저는 C++을 사랑합니다. C++은 제가 필요로 하는 모든 것을 제공합니다: 성능, 제어, 그리고 표현력. 물론 복잡하지만, 그 복잡성은 강력함을 위한 대가입니다. 저는 특히 템플릿 메타프로그래밍과 constexpr을 좋아합니다.
C++은 이제 너무 복잡해져서 새로운 기능을 따라가기가 어렵습니다. 저는 C++11 이후로 언어가 너무 빠르게 변하고 있다고 생각합니다. 예전에는 코드를 읽기 쉬웠는데, 이제는 모던 C++ 코드를 이해하려면 많은 노력이 필요합니다.
저는 C++로 코딩하는 것을 즐기지만, 주로 레거시 코드베이스에서 작업할 때는 고통스럽습니다. 새로운 프로젝트에서는 모던 C++ 기능을 사용할 수 있어서 좋지만, 오래된 코드에서는 그렇지 않습니다. 그래도 C++의 성능과 제어력은 다른 언어에서 얻기 힘든 것입니다.
저는 C++ 대신 Rust를 선호합니다. Rust는 C++의 성능과 제어력을 제공하면서도 메모리 안전성과 더 나은 오류 메시지를 제공합니다. C++의 복잡성과 함정에 지쳤습니다.
C++은 제가 사용하는 도구에 따라 다릅니다. 좋은 컴파일러와 도구를 사용하면 C++ 코딩이 훨씬 즐거워집니다. 하지만 템플릿 오류 메시지는 여전히 악몽입니다. 그래도 C++의 유연성과 성능 때문에 계속 사용할 것입니다.
  1. simonask

    아, C++.

    C++은 내가 다정하게 생각하는 옛 연인 같다. 우리는 수년간 함께했고, C++20 무렵까지 좋은 때나 어려운 때나 함께했다. 그것은 짜릿했다. 믿을 수 없을 만큼 빨랐고, 어쩌면 무책임할 정도로 빨랐지만, 야, 그 여정은 거칠었다. 그것은 내게 많은 것을 가르쳐 주었고, 오늘날의 프로그래머로 나를 빚어냈다. 하지만 그 단점들이 감당하기 너무 커지고, 그 행동—너무 자주 정의되지 않는—이 더 이상 용서할 수 없게 되었을 때 우리는 각자의 길을 갔다.

    나는 여전히 C++을 사랑하기 때문에 그것을 계속 지켜보고 있지만, 그것이 내리는 많은 인생 선택에 대해 깊이 우려하고 있음을 인정하지 않을 수 없다. 나는 그 역사를 알고 있었기에 그것이 얼마나 문제가 많은지 알았어야 했지만, 그것이 변할 수 있으리라는 희망을 가졌고, 단지 결코 변하지 않을 것처럼 보인다.

    나는 여전히 C++을 응원하고 있다. 비록 내 새로운 주 언어인 Rust에 매우 만족하고 있지만. 나는 그것이 더 나아지기를 바란다. 왜냐하면 나는 정말로 그것을 위해 최선을 바라기 때문이다. 하지만 지금은 단지 그것을 보지 못하고 있다. 그것은 오래된 실수를 계속 반복하고 있으며(예: 새로운 기능이 나올 때마다 더 많은 UB 풋건), 큰 결함(견고한 소프트웨어를 구축하기 위한 불충분한 도구) 중 어느 것도 해결하지 않고 있다.

    나는 때때로 여전히 C++을 작성하지만, 예전처럼 그것에 흥분하지는 않는다. 내가 C++을 작성할 때는 해야 하기 때문이다. 선택이 주어지면, Rust는 내가 하는 거의 모든 일에 단순히 더 나은 선택이다. 지금, 나는 C++과 나의 미래를 보지 못한다.

  2. chris_j

    나는 C++에 대해 정말로 갈등을 겪고 있다. 나는 C++을 사랑하지만, 그것에 대해 정말로 좋아하지 않는 것들도 있다. 그것은 여러 면에서 환상적인 언어이지만, 40년 이상의 찌꺼기, 즉 오늘날 프로그래밍 언어를 발명한다면 그렇게 하지 않을 것들을 짊어지고 있다.

    나는 이 시점에서 여러 해 동안 직업적으로 C++을 작성하지 않았고, 직업적으로 사용했던 기억(C++11 이전)은 행복하지 않다. 우리가 사용하도록 허용된 언어의 엄격한 하위 집합에 합의해야 했고, 그 하위 집합은 어떤 컴파일러도 잘 지원하지 않거나 내 동료들이 좋아하지 않는 기능을 피했다. 슬프게도 그 당시 금지된 기능 목록에는 템플릿과 네임스페이스가 포함되어 있었다.

    하지만 요즘 개인 프로젝트에서 C++을 사용하고, 언어의 어떤 부분을 사용하고 어떤 부분을 피할지 선택할 수 있는 것은 훨씬 더 즐겁다. 그리고 솔직히, 그 언어는 C++11 이후로 훨씬 좋아졌다.

  3. adev_

    한 단어로: 힘.

    C++은 단연코 주변에서 가장 강력한 언어다. 그리고 이것은 최선을 위한 것이며 (종종) 최악을 위한 것이기도 하다.

    일반화 프로그래밍, 하드웨어 제어, 추상화 능력, 그리고 더 일반적으로 표현력 측면에서: 오늘날에도 아무것도 C++에 가까이 오지 못한다.

    그것은 풋건으로 가득 찬 언어이며 나름의 레거시 문제를 가지고 있다.

    하지만 그것을 피하는 법을 배우면(경험과 고통을 통해). C++에서 다른 무엇으로도, Rust를 포함하여, 따라가기 매우 어려운 생산성과 성능 수준에 도달할 수 있다.

    역설적이게도, 나는 이것이 A.I. 시대에 특히 사실이라고 생각한다.

    주변에 C++이 너무나 방대하기 때문에, 에이전트들은 현재 적절히 안내된다면 그것에 꽤 능숙하다.

  4. mort96

    나는 C++ 코드를 작성하는 것을 즐긴다.

    나는 C++이 여러 면에서 나쁜 언어임을 인정하지만, 그것은 내가 정말 잘 아는 나쁜 언어이고, 내가 코드에 대해 생각하는 방식과 맞는다. 그리고 그것은 메모리가 관리되는 방식으로 불필요한 할당 등을 피하기 위해 "영리한" 일을 effortlessly 할 수 있게 해준다. 나는 이미 그 특이성의 대부분, rvalue 참조/이동 의미론을 다루는 방법, 반복자와 컨테이너 같은 계약을 구현하는 방법 등을 배웠다.

    나는 또한 Rust 작성도 좋아하고, Rust가 내가 실수하지 않도록 보장하는 방식을 좋아한다. 나는 Rust가 여러 면에서 더 나은 언어라고 생각하고 저수준 프로그래밍의 미래라고 생각한다(그리고 C++에 대한 적절한 경쟁자를 얻기까지 수십 년이 걸렸다는 것이 놀랍다고 생각한다!). 그러나 나는 또한 C++이 신경 쓰지 않고 내가 원하는 것을 무엇이든 하도록 내버려 두는 방식(보모 역할을 하지 않는)을 좋아한다. 나는 절대 C++로 공개적으로 노출된 웹 서버를 작성할 엄두를 내지 않겠지만, 게임? 물론이지!

이 날의 다른 글

2026-11-09