메뉴 건너뛰기


자유게시판


컴퓨터 산업을 뒤흔든 한 발표에서 켄 톰슨, 데니스 리치, 브라이언 커니건, 이상 3명은 그들이 만든 유닉스와 C언어가 20년동안이나 살아남은 단지 매우 공들인 만우절 장난이었음을 고백했다. 최근의 유닉스월드 소프트웨어 개발 포름에서 톰슨은 다음과 같은 사실을 고백했다:
"1969년 AT&T는 GE/Honeywell/AT&T가 공동으로 진행했던 멀틱스 프로젝트를 끝냈습니다. 브라이언과 저는 니콜라우스 워스(역자주:이 이름을 어떻게 읽느냐 하는 것에 대해서는 시비를 걸지말길 바란다. 대부분 자기 맘대로 읽고 있고 난 지금 '영어'를 쳐다보고 있는 것만으로도 머리가 아프다) 교수의 스위스 ETH연구실에서 개발된 파스칼의 초기판을 가지고 일하고 있었고, 그 세련된 단순함과 언어의 막강함에 감명을 받았었죠. 데니스는 당시 막 `Bored of the Rings(반지에 질렸다???)'를 다 읽었던 참이었는데 아시다시피 그 소설은 대문호 톨킨의 `Lord of the Rings(반지의 주인)' (역자주 : 이 책은 환상(fantasy) 소설의 효시로서 톨킨의 뛰어난 고대언어학지식을 기반으로 쓰여진 불후의 명작이다. 울티마, 로그, 영화 코난 등의 환상 소설 류의 게임 및 영화는 아마 이 소설이 없었다면 존재하지 못했을 것이다. 반지전쟁 이라는 이름으로 번역된 바 있다)을 흉내낸 국가 풍자 패러디의 하나였습니다. 장난으로 우리는 멀틱스 환경과 파스칼의 패러디를 하기로 결정했죠.
데니스와 저는 운영체제를 맡았습니다. 우린 멀틱스를 보고 -가능한 아주 복잡하고 암호같이 모호해서- 일반 사용자들은 아예 사용할 엄두를 내지도 못할 새로운 시스템을 설계했습니다. 그리고, 멀틱스의 패러디로 이름을 유닉스로 정했죠. 뭐 일부는 좀 비꼬는듯한 암시를 주기 위한 이유도 있었지만요. 그 다음 데니스와 브라이언은 파스칼을 완전히 뒤섞어 놓은 듯한 언어를 만들고 이름을 'A'라고 했습니다. 그뒤 사람들이 그 언어로 진짜 중요한 프로그램을 개발하려고 시도하고 있다는 것을 알고나서 우리는 재빨리 언어를 암호화해서 더욱 사용하기 어렵게 만들었고 이 언어는 'B'언어를 거쳐 BCPL, 그리고 결국 C가 되었습니다. 우린 다음과 같은 문장을 깨끗하게 컴파일 할 수 있을 때가 되서야 비로서 개발을 중단했습니다:
for(;P("\n"),R-;P("|"))for(e=C; e-; P("_"+(*u++/8)%2))P("|"+(*u/4)%2);
현대의 프로그래머들이 이렇게 암호같은 문장을 허용하는 개떡같은 언어를 사용할 것이라고는 전혀 생각지 못했습니다. 그건 우리의 상식밖이었죠. 우린 실제로 이걸 소련에 팔아서 소련의 컴퓨터 과학기술을 20년이상 퇴보하게 만들 생각이었거든요.
상상해보세요. AT&T와 다른 미국회사들이 실제로 유닉스와 C를 사용하려고 발악하기 시작했을 때 우리가 얼마나 놀랐겠는지. 그 기업들이 이 1960년대의 기술적 패러디를 이용해서 근근히 써먹을 만한 응용 프로그램을 개발하기에 충분한 기술을 축적하기까 지는 20년이 걸렸습니다. 하지만, 우린 일반적인 유닉스, C 프로그래머들의 고집에 매우 감명을 받았습니다 (물론 농담입니다. 그게 어디 재정신입니까?).
브라이언, 데니스, 그리고 저는 지난 몇 년간 어떤 일을 하든 애플 매신토시(역자주:이렇게 읽는게 아니었남?!) 에서 파스칼만을사용하고 있습니다. 그리고, 사실 오래전의 우리의 어리석은 장난으로부터 야기된 혼돈과 혼란과 진짜 엉망이 된 프로그래밍에 대해 진정으로 죄의식을 느끼고 있습니다."
AT&T, MICRO$OFT(역자주: 영어로 써야만 MS에 대한 내 감정을 표현할 수가 있었다), 휴렛 패커드, GTE, NCR(역자주 : 금전등록기로 유명하죠), DEC 등을 포함한 주요한 유닉스, C 판매업자들과 고객들은 이때 그 사실에 대한 어떠한 평도 거부했다. 터보 파스칼, 터보 C/C++등의 파스칼과 C툴 개발로 유명한 볼랜드사는 다음과 같이말했다. "우린 이미 몇년동안 이 사실에 대해 의심하고 있었습니다. 그래서 지속적으로 파스칼 제품을 향상시키고 C제품을 개발하는데 더이상의 지원을 하지 않을 생각입니다."
한편, IBM의 대변인은 순간 대책없이 웃어대기 시작하더니 결국 급히 요청한 RS-6000에의 운명에 대한 기자회견을 연기해야만했고 단지 `VM이 _지금_ _정말로_ _곧_ 나올겁니다'라고 말했다. 파스칼, 모듈라2와 오베론 언어를 만든 ETH연구소의 니콜라우스워스(역자주: 따지지 말라니까?!)교수는 조금은 비비꼬은 말로 P.T.Barnum(역자주:I have no idea!)이 맞았다고만 말했다.
최근 나온 관련된 이야기에 믿을 만한 정보통에 따르면 MICRO$OFT의 빌게이츠도 MeSsy-DOS와 원도즈운영체제에 관해 이와비슷한 고백을 곧 할 것이라고 한다. 또한, IBM의 대변인은 Virtual Machine(VM) 제품이 아예 빗나간 국제적인 장난이라는 사실을 부인하기 시작했다.
.. 하지만 그 중에서도 우리의 장난을 꿰뚫어 본 사람이 있었다. 그는 Stroustroup이라는 사람으로 우리의 장난을 꽤 재미있어 했다.
그리고 그도 우리의 놀이 동참하기 시작하였다. 그는 C를 더욱 복잡하게 만들어 도저히 사용할 수 없도록 만들기 시작했다. 그리하여나온 것이 바로 C++ 라고 하는 언어였다. 그가 C++를 발표하자 모든 사람들은 다시C++를 지원하려고 노력을 하기 시작했고 ANSI 에서도표준화 연구를 위해 대거 인원이 투입되었다. 그러자 Stroustroup은 당황하기 시작하였다. 그래서 더욱 헷갈리도록 하기 위해 탬플릿을추가하였고 예외처리도 넣었다. 그래도 사람들이 계속 따라오려고 노력을 하자 다중상속을 추가하여 컴파일러 구현을 거의 불가능하게 만들었지만 vendor들은 기를 쓰고 이를 구현하려고 노력을 하였던 것이다.
1998. 1. 1., Bjarne Stroustrup는 IEEE Computer지와 인터뷰 했다. 자연스럽게 편집자는 그가 C++을 창조한 당사자로서 7년간의 object-oriented 설계에 대한 종합적인 의견을 보여주리라 생각했다. 인터뷰가 끝날 즈음, Interviewer는 그의 기대 이상의 것을 알게 되었고, 편집자는 '산업계의 이익'을 위해 그 내용을 편집하기로 하였으나, 세상 만사가 그렇듯이 비밀은 없다.....