탁월한 재능과 실패가 함께 나타나는 학생들, 그리고 그런 양극적 정신이 Lisp 문화와 공동체에 남긴 강점과 약점을 성찰하는 글.
강의하는 사람이라면 누구나 오래 일하다 보면 아마 수백 명, 아니 수천 명의 학생들을 졸업시킬 것이다. 대부분은 흐릿한 덩어리로 합쳐진다. 군중 장면을 그린 그림들처럼, 앞쪽 얼굴 몇 개만 또렷하게 잡혀 있고 나머지는 상징적인 표현으로만 남아 있는 식이다. 예전 학생이 당신의 이름을 부르며 인사하는데 정작 당신은 그가 누구인지 전혀 감이 없을 때, 이런 익명성은 당혹스럽기도 하다. 기억되고 있다는 건 좋은 일이지만, 지금 말하고 있는 상대를 알아보지 못한다고 인정하는 건 몸서리쳐질 만큼 민망하기도 하다. 하지만 기억에 남는 얼굴들도 있다. 당신 밑에서 프로젝트를 했던 학생들이다. 또 다른 두 부류도 있다. 아주 뛰어난 학생과 아주 형편없는 학생이다. 탁월함과 처참한 실패는 둘 다 기억에 남는다. 그리고 가장 이상한 일들 가운데 하나, 그리고 사실 내가 이 짧은 글을 쓰는 이유이기도 한 것은, 실제로 두 부류에 모두 들어가는 학생들이 있다는 점이다. 여기서 하나 더 고백하자면, 나는 늘 이런 학생들을 좋아했고 그들에게 강한 공감을 느꼈다.
물론 처참한 실패 자체는 삶에서 새로울 것이 없다. 다른 이유 없이 그저 능력이 많이 부족해서 비참하게 실패한 학생들을 나는 꽤 자주 봐 왔다. 이것은 새로운 일이 아니다. 새로워진 것은 영국에서는 이제 그런 학생들도 많이 졸업한다는 점이다. 하지만 뭐, 그건 다른 이야기이고 여기서는 그 길로 가지 않겠다.
아니, 내가 보고 싶은 것은 탁월한 실패자들이다. 탁월함과 실패가 어찌 그리 자주 뒤섞이는지, 그리고 우리의 첫 반응은 원래 그러면 안 된다는 것인데도 말이다. 하지만 실제로 그런 일은 일어나고, 또 아주 자주 일어난다. 왜일까?
그걸 이해하려면 대학 이전으로 돌아가야 한다. 고등학교 시절로 돌아가서 만들어지고 있는 한 탁월한 실패자를 보자. 영화 Donnie Darko 를 본 사람이라면 내가 말하는 학생이 어떤 부류인지 정확히 알 것이다. 하지만 보지 않았더라도 걱정할 것 없다. 내가 말하는 사람이 어떤 사람인지 곧 알아보게 될 것이다. 거의 모든 고등학교에는 한 해 걸러 한 명쯤은 이런 학생이 있다.
대체로 여기서 말하는 학생은 대단히 뛰어난 재능의 소유자다. 대부분의 과제를 가볍게 최고 성적으로 해내는 데 익숙한 사람, 마지막 순간에 일을 처리하면서도 여전히 꽤 잘 해내는 사람이다. 어떤 수준에서는 그는 이 모든 소동을 그리 심각하게 받아들이지 않는다. 결국 학교의 규칙들 가운데 많은 것들이 정말 어처구니없이 멍청하기 때문이다. 사실, 우리 세계의 많은 것들도 신선한 눈으로 정말 들여다보면 그다지 말이 되지 않는다.
그래서 이 친구에게는 두 가지 측면이 있다. 지적 예리함과, 사물을 गंभीर하게 받아들이지 않는 태도다. 사물을 심각하게 받아들이지 않는 태도는 대체로 모든 것이 꽤 쉽고 조금 따분하다고 느끼는 것과 연결된다. 하지만 동시에 많은 인간 활동이 사실상 꽤 무의미하다는 것을 알아차리는 것과도 연결된다. 그리고 그것을 깨닫고 내면화하면 냉소적이 되고, 또 조금은 슬퍼진다. 왜냐하면 자기 자신도 그 기계 속에 붙잡혀 있고, 앞으로 나아가려면 거기에 맞춰 연기해야 하기 때문이다. 십대들은 이런 종류의 가짜 헛소리를 정말 잘 간파한다. 이것은 또한 하나의 병의 씨앗이기도 하다. 나중에는 심각한 우울증으로 깊어질 수 있는 우울한 기질 말이다.
이 친구의 또 다른 특징은 지루함에 대한 역치가 낮다는 점이다. 어떤 일을 붙잡으면 미친 듯이 달려들어 짧은 시간 안에 놀라운 성과를 내고는, 제대로 끝내기도 전에 싫증을 느끼고 놓아 버린다. 그 뒤로 며칠 동안은 기타만 퉁기고 침대에 누워 뒹굴며 아무것도 하지 않을 것이다. 이것도 그 패턴의 일부다. 광적인 활동의 시기 뒤에 우울, 위축, 무기력의 시기가 따라오는 것이다. 이것이 양극성 성격이다.
여기까지 괜찮은가? 좋다. 그럼 이 친구를 졸업시켜 대학에 보내 보자. 그러면 무슨 일이 생길까?
여기에는 두 가지 이야기가 있다. 밝은 이야기와 어두운 이야기다.
밝은 이야기는 그가 자신이 선택한 것에 진심으로 매료되고, 결국 summa cum laude 로 졸업하면서 자신의 타고난 재능을 입증하는 경우다.
하지만 내가 보고 싶은 것은 그 이야기가 아니다. 내가 보고 싶은 것은 어두운 이야기다. 탁월함과 실패가 뒤섞이는 이야기 말이다.
이 경우 이 학생은 먼저, 대학 역시 학교와 마찬가지로 여러 면에서 상당히 가식적이라는 것을 알아차리기 시작한다. 대학을 구해 주는 것은 대체로 위대한 정신들이 쌓아 올린 학문의 아름다움이다. 하지만 교수들만 보고, 그들의 협소한 집착과 쓸데없고 거의 아무도 읽지 않으며 또 읽기도 힘든 논문들 너머에 있는 보이지 않는 정신의 대학을 보지 못한다면, 아마 그것도 다른 모든 것만큼이나 가식적이라고 결론 내릴 것이다. 실제로 그렇기도 하다.
하지만 이 친구의 이야기에 계속 집중해 보자.
이제 신입생에게 학교와 대학의 가장 큰 차이는 자유다. 엄마 아빠로부터의 자유, 자기 마음대로 할 자유다. 사실상 크게 망칠 자유이기도 하다. 그래서 우리의 주인공은 새로운 삶을 시작하고 자신이 원하는 것은 무엇이든 할 수 있다는 사실을 발견한다. 술에 취하고, 새벽 3시에 비틀거리며 들어오는 것 말이다. 그래서 그는 한껏 즐기기 시작하고, 자신의 타고난 재능이 자신을 끝까지 떠받쳐 줄 것이라고 믿는다. 왜냐하면, 뭐, 학교에서는 그게 먹혔으니까. 그리고 실제로 한동안은 먹힌다.
하지만 재능만으로는 충분하지 않다. 대학에서는 내용이 더 어렵기 때문에 꾸준한 노력도 필요하다. 그래서 얼마 지나지 않아 이 친구는 과제에서 B+를 받고, 그다음엔 B, 그리고 C를 받기 시작한다. 그는 평소의 자기 확신을 꿰뚫고 지나가는 실패감을 번갈아 경험한다. 여전히 새벽 5시까지 깨어 있다가 오전 9시 마감 전에 과제를 낼 수는 있지만, 제출하는 결과물은 그다지 훌륭하지 않다. 또는 술이 아니라, 공식적인 전공 공부에서 한참 벗어나게 만드는 어떤 지적 곁길에 빠져서 본래의 교육과정으로부터 너무 멀리 떠나 버릴지도 모른다.
이런 종류의 학생은 예전에도 가끔 내 앞을 지나갔다. 반에서 거의 바닥을 기면서 말이다. 그들 중 한 명은 자신의 UNIX 프롬프트를 Bored> 로 해 두었다. 내가 그런 학생을 발견하면 대개 잘 통했다. (사실 한 명은 내가 건져냈는데, 지금은 교수가 되었고 주변이 가식적인 사람들로 가득해서 불행해한다. 하지만 뭐, 어쩌겠는가?) 대체로 그는 졸업반 프로젝트에서 자기 방식대로 할 수 있게 되면 살아났다. 그리고 정말 정말 좋은 것을 제출했다. 놀랍게도, 독창성을 보여 주는 무언가를 말이다. 그런데 많은 교수들은 바로 그 이유 때문에, 그리고 그 학생이 원래 바닥을 기는 학생으로 알려져 있었기 때문에, 그것에 정당한 점수를 주지 않았다.
이런 종류의 학생은 종종 끝까지 가지도 못한다. 중도 탈락함으로써 스스로 낙오해 버린다. 결국 탄산음료 가게에서 일하거나 정원 일을 하게 되지만, 그래도 계속 읽고 공부한다. 좋은 정신은 언제나 배고프기 때문이다.
이제 Lisp의 특징 가운데 하나는, 내가 이전에도 본 적이 있듯이, Lisp가 바로 이런 종류의 정신을 강하게 끌어당긴다는 점이다. 이것을 이해하고, 이런 종류의 정신이 Lisp 문화에 많은 기여를 했다는 사실을 보면, 왜 Lisp가 그 지지자들 가운데 많은 사람들처럼 탁월한 실패작인지 이해하기 시작하게 된다. Lisp는 탁월한 양극성 정신, 즉 BBM의 독특한 강점과 약점을 함께 공유한다.
왜 그럴까? 부분적으로는 비전과 관계가 있다. George Bush Snr. 가 한때 말한 그 'vision thing'은 사실 BBM의 강점 가운데 하나다. 그는 멀리 본다. 실제로 자신의 힘이 도달할 수 있는 거리보다 더 멀리 본다. 그는 엄청난 자원을 요구하는 빛나는 야심찬 프로젝트들을 구상하고, 그것들에 뛰어들지만 결국 기력이 다해 버린다. 그가 게으르기 때문이 아니다. 단지 가진 자원이 충분하지 않기 때문이다.
바로 여기서 Lisp가 등장한다. 왜냐하면 도구로서의 Lisp는 정신에게 있어서, 팔에 대한 지레와 같은 것이기 때문이다. 그것은 당신의 힘을 증폭시키고 C 같은 열등한 언어의 범위를 넘어서는 프로젝트에도 착수할 수 있게 해 준다. C로 코딩하는 것은 핀셋과 풀을 사용해 렌틸콩으로 모자이크를 만드는 것과 같다. Lisp는 힘과 정밀함을 갖춘 공기총을 휘두르는 것과 같다. 그것은 다른 프로그래머들에게는 닫혀 있는 온갖 왕국을 열어 준다.
그래서 BBM들은 Lisp를 사랑한다. 그리고 Lisp의 놀라운 독창성은 BBM의 창의성을 반영한다. 그래서 Lisp 사용자들로부터 비롯된 아이디어들의 긴 목록이 생긴다. garbage collection, list handling, personal computing, windowing, 그리고 Lisp 사람들이 가장 이른 개척자들 가운데 하나였던 여러 분야들 말이다. 그래서 우리는 즉흥적으로 생각하면, Lisp는 당연히 굳건하게 자리 잡아야 하고 최고의 프로그래밍 언어여야 한다고 생각하게 된다. 왜냐하면, 대단하니까, 그리고 우리가 이 많은 것을 제일 먼저 해낸 사람들이니까.
하지만 실제로는 그렇지 않다. 그리고 그 이유는 언어 안에 있는 것이 아니라 공동체 자체 안에 있다. 그 공동체에는 BBM의 강점뿐 아니라 약점도 함께 들어 있다.
그 약점 가운데 하나는 일을 제대로 마무리하지 못하는 무능력이다. 'throw-away design' 이라는 표현은 BBM을 위해 정확히 만들어진 말이며, Lisp 공동체에서 나온 것이다. Lisp는 대충 휙휙 만들어 버리기가 너무 쉬워서, 그 점을 당연하게 여기기 쉽다. 나는 10년 전 내 Lisp에 붙일 GUI를 찾으면서 이것을 보았다. (그때 Garnet는 막 서쪽으로 사라진 뒤였다.) 문제없었다. 무려 9가지 다른 선택지가 있었다. 문제는 그 9개 가운데 어느 것도 제대로 문서화되어 있지 않았고, 어느 것도 버그가 없지 않았다는 점이다. 기본적으로는 각자가 자기 해결책을 구현했고, 자기에게는 동작했으니 그걸로 충분했던 것이다. 이것이 BBM의 태도다. 나한테는 되고 나는 이해한다는 태도 말이다. 이것은 또, 무언가를 하는 데 남의 도움을 필요로 하지도 않고 원하지도 않는 태도의 산물이기도 하다.
반면 C/C++ 접근법은 꽤 다르다. 핀셋과 풀로 무엇이든 하는 일이 너무나 어렵기 때문에, 그 방식으로 의미 있는 무언가를 해내면 그것은 진짜 성취가 된다. 그러니 문서화하고 싶어진다. 게다가 어느 정도 규모가 있는 C 프로젝트에서는 도움도 필요할 가능성이 높다. 그래서 다른 사람들과 어울리고 협업하게 될 가능성이 높다. 어딘가 도달하려면 그렇게 해야만 한다.
그리고 고용주의 관점에서 보면, 그 모든 것은 매력적이다. 서로 소통하고, 문서를 제대로 만들고, 함께 일하는 열 명은, Lisp를 해킹하는 BBM 한 명보다 낫다. 그 한 사람은, 운 좋게 비슷한 또 다른 BBM을 찾을 수 있다 하더라도, 꽤 높은 확률로 언젠가는 다운되어 재부팅도 되지 않는 상태가 되어 버릴 수 있기 때문이다.
이제 내가 언급했던 BBM의 또 다른 측면은 가식에 대한 민감성이다. 미국식으로 노골적으로 말하자면, 그는 헛소리를 맡으면 안다. 물론 우리 대부분도 안다. 하지만 BBM은 그것에 대한 내성이 다른 사람들보다 훨씬 낮다. 그는 종종 사물의 현재 방식이 얼마나 터무니없는지 볼 수 있고, 또 그것이 어떻게 되어야 하는지를 볼 지능도 가지고 있다. 그리고 그는 평범한 대다수와 달리 타협할 준비가 되어 있지 않다. 그리고 이것은 많은 결과를 낳는다.
Lisp machine은 이런 종류의 비전의 산물이었다. Gabriel이 한때 말했듯, 그것은 Right Thing 이었다. 물론 실제로는 그렇지 않았다. 여기서 시장과 타협하지 않으려는 태도, 그리고 C 진영 사람들이 사용하던 플랫폼을 쓰지 않으려는 태도는 결국 치명적인 실수로 드러났다.
그리고 이것이 나를 BBM의 마지막 특징으로 이끈다. 그 모든 에너지와 지능의 이면, 즉 침체기 동안의 슬픔, 우울, 자기 상실이다. Lisp를 논하는 많은 글들을 읽어 보면, (comp.lang.lisp 의 Common Lisp Sucks 라는 글도 포함해서) 그것이 아주 크게 드러난다. 명백한 능력과 재능을 지닌 오랜 경력의 베테랑 프로그래머들이 우울의 발작과 함께 가라앉는다. 그들의 지능은 안쪽으로 향하고, 자신이 좋아하는 프로그래밍 언어의 부족함을 애조 어린 시선으로 응시하는 데 쓰인다. 문제들은 해결 가능하다. (하느님 맙소사, Qi가 그 증거다.) 하지만 가라앉아 있을 때는 모든 것이 해결 불가능해 보인다. Lisp는 끝장났고 우리 모두는 지옥으로 간다.
사실 이것을 그 어떤 글보다도 잘 보여 주는 논문 하나가 있는데, 바로 고전인 Lisp: Good News, Bad News, How to Win Big 이다. 그 글을 읽으면 BBM의 본질이 느껴지고 보인다. 그것이 독특한 이유는 Gabriel이 실제로 두 측면을 동시에 보여 주기 때문이다. 긍정적인 면, 지적 자부심, Lisp에 대한 신념이 거기 있다. 하지만 동시에 '그래도 결국 다 지옥으로 가겠지' 하는 우울한 측면도 그 안에 들어 있다. 그것은 Worse is Better 라는 메시지 속에 담겨 있다.
그렇다면 이 모든 것의 메시지는 무엇일까? 기본적으로는 두 가지 문제가 있다는 것이다. Lisp 정신의 문제와 Lisp의 문제다. Lisp 정신의 문제는 BBM의 특징적인 사고방식이 가진 문제다.
그렇다면 Lisp의 문제는 무엇일까? 그 답은 그것을 프로그래밍하는 정신들에 꼭 맞게 재단되어 있다. 그것은 Lisp의 koan 이다.
그 답은 Lisp에는 문제가 없다는 것이다. 왜냐하면 Lisp는 삶과 마찬가지로, 당신이 그것으로 무엇을 만들어 내느냐에 달려 있기 때문이다.