개발자들이 하는 일을 보면 아직도 외계에 있는 사람들을 보는 것 같기도 합니다만 그들은 엄연히 우리의 생활을 윤택하게 해 주고 우리가 이토록 기술발전이 된 시대에 살게 해 준 사람들입니다. 이런 사람들은 어떤 생각을 가지고 어떤 능력을 가지고 있었을까 궁금합니다.
일만큼 취미도 맘껏 즐기는 멋쟁이 프로그래머
샌프란시스코 해안선에 근접한 경치 좋은 자리에 우뚝 선 디지털 리서치 사가 보인다. 이곳은 CP/M 개발자이자 이 회사의 설립자인 게리 킬달의 일자리로 현재 그의 직책은 회장이다. 그의 사무실은 밖의 멋진 풍경과 걸맞지 않게 아주 음침하고 어슴푸레하여 방문자들을 놀라게 하지만 일하기에는 이런 분위기가 더 잘 어울린 다는 그의 소신대로 바깥과는 아주 분리되어 있다. 그렇다고 꼭 일에만 미친 사람은 아니다. 일하는 만큼 여가생활도 충분히 즐기는 그는 작업이 뜸할 때면 짧게나마 휴가를 간다. 이 때는 될 수 있으면 회사와 멀리 떨어지기 위해 비행을 하며 비행기를 조종하다 보면 일에 찌든 머리가 맑아지며 회사로 돌아올 때는 신선한 여러 가지 아이디어를 가득 갖고 온다. 그래서 그를 비롯한 유명한 프로그래머들이 비행기 조종을 좋아하는가 보다. 큰 키에 빨강머리 그리고 잘 정돈된 턱수염을 지닌 그는 빳빳한 느낌을 주는 새로운 웨스턴 스타일의 블루진에 흰색 카우보이 셔츠를 즐거 입는 멋쟁이다.
빠르고 짧게 잘 요약된 프로그래밍 스타일로 CP/M 개발
“전 원래 고등학교 수학선생이 되고 싶었죠. 그래서 워싱턴 대학에서 수학 코스를 밟기 시작하였는데 어느 날 친구가 FORTRAN 명령카드를 보여주더군요. 그리고는 앞으로 굉장한 역할을 할 것이라고 덧붙였습니다. 그때부터 정신없이 컴퓨터에 빠져들게 되었는데 치음에 ASSEMBLY 언어 과목을 수강하였고 FORTRAN도 들있습니다. 그리고 지금까지 이렇게 하고 있네요.”
1942년 시애틀에서 태어난 게리 킬달은 1972년 워싱턴 대학에서 전산학 박사학위를 받았다. 20년의 프로그래밍 경력인 그가 처음으로 작성한 프로그램은 두 달력의 날짜 사이의 시간을 계산하는 것으로 아직도 정든 옛날 시계처럼 책상에 넣어두고 가끔 서랍 정리 할 때마다 쳐다보곤 한다. 그다음으로 게리 킬달의 이름을 컴퓨터 역사상 빛나게 한 작품인 CP/M의 개발은 그가 인텔의 연구위원이자 해군대학원 교관이었던 1973년 때이다. 그 당시 그는 프로그래밍할 때 스탠퍼드 대학의 빌 맥키만 교수가 작성한 메인프레임 급 언어인 XPL를 사용하다가 이와 유사한 PL/M이라는 마이크로 컴퓨터용 프로그래밍 언어를 개발하였다. 그리고 이를 8080 마이크로프로세서에서 사용하기 위해 디스크 드라이브와 통신할 수 있는 인터페이스를 만들게 되었다. 그것이 바로 마이크로를 위한 컨트롤 프로그램인 CP/M이라는 오퍼레이팅 시스템이었다.
CP/M이 개발된 후 얼마동안은 8080 마이크로프로세서가 판매되지 않았기 때문에 별 인기를 누리지 못하였으나 그 후 8080의 우수성이 알려지면서 급속도로 보급되었다. 1975년에는 CP/M의 해라고 할 만큼 CP/M을 채용한 컴퓨터들은 최고의 인기를 누렸으며 두터운 유저층을 형성해 나갔다. APPLE 컴퓨터를 비롯하여 이 당시의 많은 컴퓨터가 CP/M을 OS로도 채용하였는데 그 이유는 뛰 어난 기능도 기능이지만 디스크드라이브를 탄생시킨 계기가 되어 사용자들에게는 예전과 비교할 수 없는 편리함을 제공하였기 때문이다. 게리 킬달 자신도 CP/M이 이렇게 히트하리라고는 예상치 못했다. 그러나 한편으로는 자신이 1년 반 동안 사용했던 종이테이프의 리더기가 2천 달러 이상인데 반해 플로피 디스크 드라이브는 500달러 밖에 안되니 가격으로만 따진다면 성공할 수도 있을 것이라고 그저 막연한 예측만 하였었다.
해머와 못을 들고 기능공 아버지 흉내
로고(LOGO) 언어를 만들었던 세이머 페퍼 트는 어린이들이 기어나 다른 기계 부속품을 가지고 놀면 창의력이 풍부해진다고 하였다. 또 이런 놀이로써 연습하고 배우는 기술들은 다른 영역에도 영향을 줄 수 있다고 하였다. 게리 킬달은 어릴 적부터 위대한 기능공인 아버지를 흉내 내곤 하였다. 그는 몇 시간이고 아버지가 하시는 일을 곁에 서서 지켜보다가 밖에 나가 해머와 못을 들고 그대로 흉내를 내었었다. 특히 프로그램의 기초인 [데이터구조]는 어린이들이 가지고 노는 공구들처럼 기계적이어서 그가 프로그래밍하는데 많은 도움을 주었다. 나무나 쇠로 물건을 만드는 것과 프로그래밍은 다만 육체적 노동이냐 정신적 노동이냐 하는 차이를 가지고 있을 뿐이며 잘못 만들었을 경우 처음부터 다시 시작해야 하는 작업에 반해 프로그래밍은 그 자리에서 틀린 부분만 고치면 된다.
게리 킬달은 실용주의자라 프로그램도 빠르고 짧게 잘 정리된 것을 좋아한다. 이러한 스타일은 초기 Burroughs 5500을 사용하면서 배운 것인데 이 시스템은 그 당시 가장 진보적인 기계로 블록(block) 구조 언어 가운데 ALGOL에 기초한 것이었다. 물론 ALGOL 컴파일러도 그 당시로는 가장 좋은 프로그램 중의 하나였다. 따라서 ALGOL 컴파일러를 자기의 일에 맞게 이렇게 저렇게 변경하다 보니 자연히 많은 시간을 다루게 되었고 이런 작업들이 그의 프로그래밍 스타일에 영향을 미치게 되었다. 다행히 ALGOL의 기본 개념이 고스란히 C나 PASCAL 언어로 전해지게 되어 그 후로도 그는 일관적인 프로그래밍 스타일을 유지하게 되었다. 그는 프로그램을 개발하다 보면 한 지점에서 갑자기 코드가 폭발적으로 터져 나온다. 모든 다양한 이름들과 어떻게 그것들을 상호 연결해야 하는가 포인터를 어디서 시작해서 어디에서 끝내야 하는가 그리고 디스크 액세스는 어떻게 해야 하는가 등의 그는 이 모든 것들을 머릿속에 넣고 항상 보다 좋게 변화시킨다. 따라서 단순히 생각나는 대로 절대로 코딩을 하지 않는다. 그 대신 종이에 메모를 해둔다. 따라서 프로그램 구조가 막 떠올랐을 때 그것을 머릿속에서 조직화하기 위해서는 보통 새벽 3시에 일을 시작한다. 일은 대개 밤 6시까지 쉬지 않고 계속되며 저녁을 먹고 일찍 잠자리에 들었다가 또 새벽에 일어나 일을 하는데 프로그램이 완성될 때까지 거의 같은 시간표를 가진다. 게리 킬달은 자신을 비롯한 유명한 프로그래머들의 취미가 비행기 조종인 것에 대해 다음과 같이 이야기하고 있다.
“한마디로 말해 비행기 조작 과정이 프로그래밍 과정과 같기 때문입니다. 또 대부분 컴퓨터를 좋아하는 사람들은 기계 부품들을 좋아하지요. 비행기 안을 보십시오. 온갖 종류의 다이얼이나 바퀴 그리고 손잡이 등 얼마나 많은 부품들이 가득 차 있습니까? 그러나 컴퓨터는 매우 추상적이고 비행기는 실제적인 것이기 때문에 위험이 따르지요”
강의 첫 시간에 보는 시험이 그 학기의 주제
게리 킬달은 박사 학위를 받은 후 해군에 입대하여 캘리포니아의 몬테리 해군대학원(Naval Postgraduate School)에서 전산학 교관으로 복무하였다. 그는 제대 후에도 계속 그곳에 남아 강의를 하였으며 자신이 즐겨 공부하던 [데이터구조]를 주로 가르쳤다. 데이터구조 강의가 시작되는 첫날 이제부터 기호로 미분방정식을 푸는 프로그램 작성 시험을 보겠습니다. 다항식이 주어진 프로그램은 다항식을 미분해야 하고 숫자나 결과치가 아닌 기호를 만들어야 합니다.” 그러면 학생들은 어리둥절하며 당황해한다. 10분 뒤 그는 시험을 마치고 학생들에게 묻는다.
“문제를 어떤 식으로 풀어나가려고 했습니까?”
“어떤 도구들을 이용하였습니까?”
“곧바로 작성으로 들어 갚습니까?”
“약간의 예를 적어 보았습니까?”
이렇게 시작된 강의는 학기 내내 문제 해결의 테크닉과 도구 등에 대해 다루게 된다. 그리고 학기말 시험에서 첫 시간에 보았던 시험을 그대로 다시 한번 본다. 프로그래밍 과정의 대부분을 문제 해결이라고 보는 게리 킬달은 문제를 풀기 위해서 가장 해결하기 어렵다고 생각되는 부분부터 시작하여 그 문제를 조각조각 나누는 방법을 가르치고자 노력한다. 그는 또 깨끗하고 단순하며 좋은 구조와 일관성을 가지고 있는 프로그램을 보면 모나리자와는 또 다른 아름다움을 느낀다. 따라서 프로그래밍 언어 중 Mexpressions이 라 불리는 LISP을 무척 좋아한다. 박사 논문을 쓸 때도 그는 LISP를 사용하여 며칠 동안 풀 수 없었던 문제를 2시간 만에 해결하였다.
CD ROM에 의한 지식 시스템과 DR-DOS 개발
1984년 게리 킬달은 현재 Knowledge Set사의 모체가 된 Activenture 사를 설립하여 광디스크의 출판 가능성을 타진하기 시작하였다. CD ROM이나 광 스토리지에 대해서 그는 컴퓨터에서 이루어진 기계적 단순화의 산물이라고 생각한다. 다시 말해 예전에는 모든 일들이 톱니바퀴나 계전기 등에 의해 수행되었지만 그다음에는 진공관으로 이제는 반도체로 향하게 되었다. 예를 들어 자동차를 보면 1984년부터 속도계 케이블이나 회전 속도계가 반도체로 대체되었고 이런 자동차는 더욱 싸고 신뢰성 높은 제품으로 평가받고 있다. 컴퓨터에서도 이와 마찬가지로 기계인 하드디스크의 소멸은 당연한 일이며 단지 어떤 과정을 거쳐 사라질 것인가만 남아있다. 이로써 CD ROM의 탄생은 예정된 일이었고 게리 킬달은 CD ROM 포맷으로 된 Grolier 백과사전을 발표하였다. 지식 시스템(Knowledge System)의 한 종류인 이 백과사전은 주로 가정에서 사용할 수 있도록 하고 있다. 일례로 지식 시스템 내의 컴퓨터 응용 프로그램들은 어린이들의 학습을 도와준다. 그의 14살인 딸은 약간 어려운 과목을 수강하게 되어 보충수업이 필요하였다. 따라서 백과사전 내의 컴퓨터 응용 프로그램을 이용하였더니 실력이 향상되는 등 직접적인 효과를 보았다. 그는 이 경험이 반드시 딸의 장래에 도움을 줄 것이라고 확신한다. 또 최적의 가격으로 자동차를 사려고 할 때 대부분의 사람들은 산 호세 또는 샌프란시스코나 로스앤젤레스 등을 찾아 헤매지만 자동차 판매자들이 정보 보호를 위해 잘 알려주지 않기 때문에 정확한 정보를 얻기란 불가능하다. 따라서 그는 정보입수를 위한 지원자가 되어 많은 사람들이 쉽게 정보를 얻고 수 천 달러를 절약할 수 있게 한다.
한편 지금 세계의 DOS 사용자들의 관심은 DR-DOS를 발표한 디지털 리서치 사로 향해 있다. DR-DOS는 현재 PC의 표준으로 군림하고 있는 MS-DOS와 완전한 호환을 이루고 있으며 그 기능을 대폭 강화 시킨 강력한 오퍼레이팅 시스템이다. 특히 MS-DOS의 절반 가량인 저렴한 가격이 이의 보급을 재촉하고 있다. 그를 만난 사람들은 절제되고 계산적으로 느끼지는 매너 때문에 차가운 사람이라고 한결같이 말하지 만 프로그래밍에 대한 그의 정열과 진지함을 아직도 식지 않는 활화산에 비유하는데도 일치할 것이다.
처음 듣는 이름이기는 했지만 당시 컴퓨터 시스템의 한 축을 담당했던 DR-DOS 개발자라고 하니 이해가 갔습니다. 앞으로도 이와 같이 서브로 사용할 수 있는 많은 프로그래머들이 나와 전 세계 사람들의 윤택한 생활을 이끌어 주었으면 좋겠습니다.