Search results

'2010/02'에 해당하는 글들

  1. 2010/02/05  It's C++, baby
원문: http://www.realtimerendering.com/blog/c-baby/

--

C++다, 이자식들아
Eric.

얼마 전 내가 Communications of the ACM을 보던 중에, Computer Science in the Conceptual Age라는 글이 눈에 들어왔다.
그 글의 한 페이지에는 이런 문장이 커다랗게 씌여 있었다. "2009년 봄 ACM의 (채용) 프로그램을 통해 프로그래밍 관련 인턴이나 일자리를 찾는 사람들 (게임 관련 업계에는 35명) 중에 아무도 Java로 시험을 치르는 회사를 보지 못했다."

또 한편으로 "USC의 통계에 따르면 프로그래밍 관련 인터뷰를 한 학생들은 모두 세네 시간 정도의 프로그래밍 테스트를 치렀는데, 거의 모든 회사에서 C++을 사용했다." 고 한다. 아무도 Java를 사용하지 않았다.

게다가 M.M McGill과 주요 게임 회사 관련자들에 따르면, "게임 업계에서는 대학의 기초 프로그래밍 수업이 Java가 아닌 C++로 이루어지기를 원한다." 고 한다.

마지막으로, "대다수의 게임 회사에서 Java가 메인 프로그래밍 언어인 프로그래머는 고용하지 않을 것이다." 라고 했다.

으아, 마지막 건 좀 까칠한데, 왜냐하면 내 두 아이들을 키워 본 경험에 따르면 (하나는 고등학생, 하나는 대학 컴공 1학년) 얘들은 "제대로 된" 첫 프로그래밍 언어 수업을 Java로 배웠기 때문이다. (난 Scheme을 "벌어먹고 살 수 있는" 제대로 된 언어로 생각한 적 없다.) 다른 사람들이 Java를 첫 언어로 배우는 거야 물론 내 알 바 아니다. 어, C++에서 Java로 넘어갔다가 다시 C++로 넘어오는 건 아마 천국에서 추방당하는 느낌이긴 할거다.난데없이 프로그래밍 하는 시간의 절반을 메모리 문제로 썩혀야 하고 말이다. Java나 C#은 그런 면에서 볼 때 말도 안되게 좋다. (C++의) 오토 포인터를 말할 거 같으면, 나는 이게 제대로 돌아가는 물건이라고 느낀 적이 한 번도 없다. 이놈들은 당췌 내가 생각도 못한 원칙으로 동작한다. 내가 1997년에 처음 짠 Java 프로그램은 아직도 웹에서 돌아간다. 내가 그때쯤 짠 C++ 프로그램은 비스타나 윈도7에서 무슨 WinG DLL이 없다면서  돌아갈 생각을 안 하는데 말이지 (고마워 M$).

그럼에도 불구하고, 위에서 언급한 저 기사는 맞는 말을 하고 있다.  Autodesk에서 Java나 c#을 쓰기는 한다. 나는 파이썬으로 UI를 작성하기도 했다. 하지만 graphical 프로그램의 핵심 부분은 거의 무조건 C++로 작성되어 있다 (가끔 아닐 때도 있는데, 그럴 땐 곧 크나큰 후회와 작업 취소가 뒤따른다... 사실 내가 볼 때 Java가 그렇게 까일 정도는 아니긴 했지만.). C# 기반의 XNA는 64비트 버전이 아예 없다. 게다가 M$의 "Managed code"는 C++ 기반의 "제대로 된" DirectX보다 느리다.

이리저리 뒤져보던 중에 SlimDX라는 Open-source 프로젝트를 찾았다. 이 친구는 DirectX와 통신하기 위한 64비트 어셈블리를 제공하기는 한다. 재미있는 건, SlimDX 쪽에서는 "어떤" 게임이 SlimDX를 사용했다고 하는데, 어떤 게임인지는 알 수가 없다는 것이었다. 그래서 직접 물어봤더니 비밀이라고 안 가르쳐 주더라. 뭐 그건 좋다만, 이게 더 사실에 가까운 거 같다. "대부분의 상업용 PC/콘솔 게임은 C++로 개발되고 있다. 기존에 작성된 엄청난 양의 코드를 포기할 수 없기 때문이다. (또한 대부분의 콘솔 제조사에서 C나 C++이외의 언어는 제대로 지원하지 않고 있다.)"

한줄 요약: C++다, 이자식들아.
2010/02/05 22:02 2010/02/05 22:02
openclose