면접 할때면 간혹 C++ 로우레벨 문제들을 질문하곤 한다. 혹자로부터 "너무 문제를 위한 문제가 아니냐, 그런거 몰라도 게임 충분히 만들 수 있다." 라는 지적도 받았는데 나 역시 C++ 을 어느정도만 해도 충분히 좋은 게임을 만들 수 있다고 생각한다. 아니, 조금 더 정확하게 말하자면 "게임 만드는데 충분히 참여할 수 있다." 라고 해야겠다.
 
C++ 의 tricky 한 면을 속속들이 알고 있는 팀원만으로 팀을 꾸릴 수 있다면 참 좋겠지만 현실적으로 그것은 불가능한 얘기이고, 난 이상주의자가 아니다. 타협점은 적어도 팀에 한명정도는 저런 골치아픈 문제를 해결할 수 있는 개발자를 두는 것이다. 만약 조직에 그럴 수 있는 개발자가 없다면 팀의 종착지는 둘 중 하나다. 문제가 발생하지 않기를 기도하며 그대로 전진하거나(발생 확률이 낮다면 충분히 상용화 해서 성공할 수도 있다) 혹은 좌초하거나.

질문을 던지는 이유는 떨어트리기 위함이 아니라 그것을 해결해 줄 수 있는 사람인지 아닌지 알아보기 위함일 뿐이다. 언젠가 Linus 가 이런 얘기를 한적이 있다.

“C++ is a horrible language. It’s made more horrible by the fact that a lot of substandard programmers use it. [...] C++ leads to really really bad design choices. You invariably start using [...] STL and Boost and other total and utter crap [...] and anybody who tells me that STL and especially Boost are stable and portable is just so full of BS that it’s not even funny. [C++ leads to] inefficient abstracted programming models. [...]  The only way to do good, efficient, and system-level and portable C++ [...] is limiting your project to C [which] means that you get a lot of programmers that do actually understand low-level issues and don’t screw things up with any idiotic ‘object model’ crap.”

표현이 격하긴 하지만 나는 저 주장의 몇몇 부분들에 진심으로 동의한다. C++ 은 많은 설계 결함을 가진 끔찍한 언어인게 사실이고 때문에 컴파일러 뒤편에 숨겨진 빌어먹을 일들에 대해 속속들히 알고 있어야 제대로 쓸 수 있다.

다른 얘기로, 지금 C++ 을 쓸수밖에 없다면 그 모든걸 누군가는 알아야만 한다는 거다. 만약 그게 자신이라면 더욱 좋을 것이다.
2009/02/22 23:53 2009/02/22 23:53

트랙백 주소 :: http://testors.net/tt/trackback/1118