많은 언어들은 기본사양은 굉장히 간단하고, 트릭을 좀 익히고 나면 라이브러리의 사용법을 익혀서 자신이 만들고 싶은걸 만든다. 그런데 c++ 는 기본사양부터 방대하고, c++11 이 되어서 좀 나아지긴 했지만, 그 전까지는 트릭도 많았고 라이브러리의 사용법도 꽤 가지각색이다.
c++ 를 low level 로 정의해야할지, high level 로 정의해야할지는 아직도 내겐 애매하다만, 지금 당장의 답으로는 아마 그 둘을 다 해보려고 하다가 linux 개발자에게 버림받은 것일 것이다(물론 모듈 제작등에서 사용되기도 하니 완전히는 아니지만).
애증이 교차하는 언어지만 python 을 수치계산에 쓸 수는 없으니, 어쩔 수 없는 선택이긴 하다. 속도를 필요로 하면서 일정 이상의 생산성을 바란다면 c 를 쓰는 것 보다야 나으니. 리누스가 말하길, c++ 를 써서 만든 프로그램은 쓰레기 같은게 나올 수 밖에 없다고 했다만, 이건 커널 함수들이 머릿속에 들어가서 그걸 머릿속으로 컴파일 하는 커널 개발자 관점에서 본다면 맞는 말일 것이다. stl 을 사용한 프로그램은 stl 근처 오류가 날 경우 에러메시지로부터의 디버그는 포기해야할 정도고.
그런데 아직 시스템 프로그래밍에 있어서 c 혹은 c++ 를 대체할만한 언어가 없어보인다는게 문제다. |