해커 문화의 뿌리를 찾아서 Part 6: ‘괴델, 에셔, 바흐’ 그리고 해커리즘의 쇠락 |
 |


국내 개발자들에게 보다 친숙하게 다가가기 위해, 직접 목소리를 듣고, 전달하는 코너입니다. 기술 자체보다는 "기술과 세상"을 주제로 한 다양한 이야기를 소개하는 개발자들의 문화 소통 공간입니다.
|

안윤호 mindengine@freechal.com
필자는 아마추어 리눅스 커널 해커였으며 최근에 팹(Fab)이라는 책을 번역 출간했다. 컴퓨터의 여러 분야에 관심이 많고 컴퓨터와 문화의 인터페이스에도 관심이 많다.
2007년 9월 18일
|
|
 |
|
연재순서
1회(2007년 4월): 리스프가 탄생하기까지
2회(2007년 5월): 원시 리스프의 재구성
3회(2007년 6월): 해커리즘의 문화
4회(2007년 7월): 액터와 람다
5회(2007년 8월): Fixed Point 계산과 고차 함수
6회(2007년 9월): ‘괴델, 에셔, 바흐’ 그리고 해커리즘의 쇠락
지난번에 람다와 프로세스에 대한 이야기를 했기 때문에 이번 주제는 복잡한 것들과 동시적인 것들에 대한 암시들이다. 다른 것들도 많겠지만 고전적인 것들을 꺼내 보았다. 필자의 책상 오른쪽 옆구리에는 오랫동안 놓여있는 책 몇 권이 있는데 가끔씩 꺼내 읽으면서 많은 생각을 한다. 실용적이지도 않으며 결론은 없지만 암시적인 임무는 충실히 하는 책들이다. 컴퓨터에 관련된 책 중에는 마빈 민스키의 [[The Society of Mind]]와 더글러스 호프스태터의 [[Gödel, Escher, Bach]](이하 GEB)가 있다. 몽상가 기질이 있는 필자는 가끔 책에 나오는 구절들을 생각하며 묘한 상상을 하곤 한다. 책의 제목들은 화두라고 볼 수 있으며 상식적으로 생각하는 내용에 도전하기도 한다. 우리가 무엇을 안다는 것이 무엇인가에 도전하기도 하고 지능이라는 것이 무엇인가에 대한 화두도 던진다.
알 것 같기도, 모를 것 같기도 한 화두들은 전염성이 있으며 선승들이 몇 개의 화두를 붙잡고 고민하는 것처럼 머릿속에 오래 남아 오만 가지 생각을 불러일으키기거나 다른 아이디어를 싹 틔우기도 한다. 사람들은 화두를 갖고 생각과 논쟁을 거듭한다.
이상한 고리
출판된 지 거의 30년이 되었지만 이 책을 기억하는 사람들이 많고 아직도 팔린다. 이 책은 제목(Gödel, Escher, Bach) 그대로 세 사람의 생애와 작품들을 모아놓고 여러 가지를 보여준다. 형식적 규칙(formal rule)과 자기참조(self-reference)를 통해 의미가 없는 것들로부터 의미가 만들어지는 현상을 설명한다. 통신이라는 것과 지식을 전달하고 저장하는 방법들, 그리고 기호를 통한 표현의 한계를 설명한다. 이 책은 1999년 한국어판이 나왔다.

그림 1. GEB 표지
이렇게 어려운 주제를 다뤘지만 책이 인기를 얻은 것은 이들을 흥미롭게 설명했기 때문이다. 그래서 사람들은 이 책을 보고 많은 생각을 하게 되었다. 주제들은 우리의 생각과 주위에 흔한 것들이라 막상 생소한 것도 없었다. 생각을 글로 옮기고 철학적으로 생각하면 어려워진다. 말이라는 것이 원래 어려운 것이다. 책을 너무 심각하고 진지하게 생각하면 안 된다. 저자는 유희적 요소를 동원했다.
아킬레스와 거북([[이상한 나라의 앨리스]]를 쓴 루이스 캐럴의 “거북은 아킬레스에게 무엇을 말했는가”에서 캐릭터를 따왔다) 그리고 게(바흐의 ‘crab canon’에서 따왔다)가 등장하고 이들이 나누는 대화가 책의 내용이다.
해커들이 오랫동안 프로그래밍의 요소를 놓고 고민했듯 철학자들은 자기참조라든지 형식적인 규칙들을 놓고 고민해왔다. 음악이나 미술에도 이런 요소들이 있다고 한다. 언어에도 있다. 나("I")는 자기참조적인 낱말이다. 자기참조라고 하니 철학적인 용어처럼 보이지만 프로그래밍에서는 언제나 접하는 요소다. 재귀(recursion)를 말한다.

그림 2. 자기참조를 상징하는 그림. Ouroboros라고 부른다. 자기 꼬리를 삼키는 뱀(또는 용)의 그림이라고 한다.
몇 가지 요소를 잘 묶어 이들이 생기는 법칙을 부여하면 의미가 생긴다. 음표는 의미가 없지만 바흐가 이들을 묶어 악보로 만들어 놓으면 의미가 있다고 생각되는 음악이 나온다. 생성규칙 역시 지난 칼럼에서 이야기했다. 리스프의 리스트 표현에 앞서 설명한 s-expression이 생성규칙의 하나다.
GEB에 나오는 바흐의 카논과 푸가는 이것을 한층 더 발전시킨 것이다. 카논은 여러 개의 성부로 되어 있다. 이들은 마음대로 나오는 것이 아니라 주제는 제1성부에 있고 2, 3성부는 같은 주제를 반복한다. 카논은 주제를 스스로에게 다시 적용하는 것이라고 한다. 주제들이 화음을 이루는 법칙이 있기 때문에 음표는 하나의 선율의 일부이며 화성학적으로나 선율적으로 다른 방식으로 작용해야 한다. 듣는 사람은 이들의 연관관계를 파악하며 카논의 의미를 파악한다. 그러니까 정교한 프로그래밍과 다를 것이 별로 없다. 악보는 컴퓨터의 소스코드처럼 기록되며 이것을 연주하는 것은 컴퓨터가 소스코드를 실행하는 것과 같다.
의도적으로든, 의도하지 않든 사람들은 음표의 강약과 화음 속에서 음악에 푹 빠진다. 높은 집중도와 몰입 그리고 지적인 활동이 요구되는 활동인 것이다. 같은 일을 하는 여러 개의 쓰레드나 프로세스 활동처럼 각 성부의 악보는 빨라지기도 하고 느려지기도 한다. 바흐의 천재성은 6성부의 푸가도 만들어 낼 수 있었다(때로는 즉흥적으로 푸가나 카논을 만들기도 했다). 6성 푸가는 당시의 정신사에 깊이 관여한 프리드리히 대왕에게 헌정되었다. 고도의 인공물(artifact)인 음악은 사람들의 정신을 고양시키는 프로그래밍 활동으로 볼 수 있다. 카논이나 푸가를 들으면서 실제로 이런 일이 일어나는 경우도 있기 때문에 여러 개의 성부가 만드는 효과를 프로그래밍이라고 부르지 못할 것도 없다.
책의 다음 주제는 무한히 상승하는 것처럼 보이는 카논을 예로 든다. “무한히 상승하는” 카논은 C 단조에서 시작하여 D, E 단조로 조를 바꾸고 다시 정확히 C 단조로 돌아온다. 이 과정은 무한히 지속할 수 있을 것 같은 느낌을 주고 저자는 이상한 고리의 전조를 읽어냈다. 이상한 고리는 호프스태터가 최근에 쓴 책의 제목([[I am a Strange Loop]])이기도 하며 GEB를 관통하는 중요한 주제이기도 하다. 위계질서의 층위가 무한히 올라가거나 내려갈 것 같지만 예기치 못하게 위계질서의 층위는 처음으로 돌아오는 현상을 "이상한 고리(strange loop)"라고 불렀다. “헝클어진 위계질서(tangled hierarchy)”가 나타난다.

그래서 에셔가 나온다. 에셔의 그림들은 이율배반, 착시 또는 중의성에 기반을 두고 있다. 어떤 그림들은 때로 “이상한 고리”를 보여준다. 그림에 나오는 폭포는 단순한 고리이지만 몇 개의 층위가 나오는 그림들도 있다. 그 중 하나가 에셔의 손 그림이다. 그림에서 손은 다른 손을 그린다. 서스만과 아벨슨의 SICP 비디오 강의에서도 이 그림을 인용했다. 한쪽 손의 이름은 eval이고 다른 손에는 apply라고 적혀 있다. 어떤 것이 우선적인 층위인지는 애매하다. 리스프 인터프리터의 프로그래밍은 apply로 시작해도, eval로 시작해도 같은 결과에 도달했다(필자의 두 번째 칼럼에서 다루었다). 코드상으로는 eval이 더 높은 순위처럼 보이지만 아니다(더 많은 층위의 문제들도 있다. 그것은 책을 보는 수밖에 없다).

이율배반 논리에 대한 “이상한 고리”도 존재한다. 그것은 괴델의 불완전성 논리에 의해서였다. 앞에 나온 폭포가 “이상한 고리”인 것과 같이 괴델에 의해 수학적 논증 그 자체가 도마에 오르게 되었다. 결국 수학적 논증에도 같은 주제가 적용된다는 것을 알게 되었다(크레타섬 사람이 “모든 크레타인은 거짓말쟁이다”라고 말하거나 “이 명제는 거짓이다”라고 하는 명제 그 자체가 문제가 되겠다).
GEB의 이야기 거리들
책을 다 소개한다는 것은 바보짓에 가까우니 두세 가지 주제만을 생각해 보자. 그냥 생각해보기만 하는 것이다.
1부의 6장 “정보는 어디에 자리잡고 있는가”에서는 음반의 골에 음악 정보를 담은 LP 음반과 전축을 예로 든다. 각각 정보 저장자(information-bearer)와 정보 발현자에 해당된다. 음반은 음을 충실하게 복원한다. 그러나 경우에 따라 정보를 정보 저장자에서 “꺼내는” 일에는 노력이 필요하며 정보를 꺼내기 위한 노력에 투입되는 정보가 정보 저장자보다 많은 경우가 있다고 한다.
컴퓨터를 하드웨어 입장에서 본다면 프로그램 파일로부터 실제 프로그램을 실행하기 위해 엄청난 노력을 해야 한다. 운영체제를 수행해 자원을 관리하고 프로그램을 읽어 일일이 수행시켜야 한다. 어쩌면 간단한 프로그램보다 더 거대한 시스템이 준비되어 있다고 볼 수도 있다. 모든 준비가 끝나야 프로그램은 제대로 수행될 수 있다. 라이브러리가 하나만 잘못되어도 문제가 나타나며 시스템이 수행하는 것이 애플리케이션에 있는 모든 정보도 아니다. 이렇게 생각한다면 정보가 어디에 있는지는 예상보다 어려운 문제다.
책에서는 DNA의 이중나선에 있는 정보의 발현을 다룬다. DNA의 정보는 (ATGC의 염기서열로 되어 있는) 일종의 리스트 구조처럼 보이는 자료구조다. DNA의 정보는 적절한 시기에 발현(revelation)된다. 바흐의 카논 악보가 악기의 소리를 내는 것과 비슷하지만 이 리스트는 수없이 많은 단백질을 만들어내고 이들의 동시적인 활동이 생명 활동이다. 하나씩은 어떻게 해석하더라도 이 암호가 다른 것들과 어떻게 통신하는가에 대해서는 잘 모른다. 그냥 기능한다는 것만 알 뿐이다. 몇 가지는 그 사이클이 밝혀졌음에도 불구하고 이들의 상호작용은 아주 복잡한 악보의 연주 활동이라고 말할 수 있다. 수백 수천 개의 성부로 구성되어 있는 악보와 마찬가지다. 이 악보는 설계자가 누구인지도 모르며 주석조차 달려있지 않다. 이 리스트는 전체가 다 필요한 것이 아니라 특정 부분들이 해석되며 시작과 끝은 일정한 염기 서열로 표시되어 있다. 그러면 인터프리터를 닮은 리보솜이 DNA를 복사하여 작업을 시작한다.
저자는 정보의 발현을 주크박스에 비교했다. 주크박스의 버튼을 누르면 음악이 연주된다. 그렇다면 세포는 거대하고 복잡한 주크박스라고 볼 수 있다. 단추의 버튼으로 트리거 된 기나긴 체인이 발동할 수도 있다. 그리고 이 체인은 다른 주크박스의 스위치를 트리거 하기도 한다. 주크박스의 출력이 발라드가 아니라 더 복잡한 주크박스의 제작법을 다룬 가사처럼 보일 수도 있다. DNA의 일부가 RNA로 전사되어 이 RNA로 단백질을 만들면 다른 스위치가 트리거 된다. 그래서 표현형은 잠재적으로 DNA에 잠재되어 있던 정보의 발현이라고 본다(이를테면 특정 부위의 몇 개의 염기서열은 대머리나 곱슬머리의 표현형을 만들 수도 있으나 표현형의 발현은 주위 환경이나 다른 유전자의 영향과 무관하지 않은 경우가 많다).
머리가 아파지기 시작한다. 그러면 DNA에는 생명에 관계된 모든 정보가 전부 포함되어 있는가? 그렇다고 볼 수도 있지만 아닐 수도 있다. DNA의 정보를 꺼내는 모든 과정은 DNA에 있는 것이 아니라 DNA 자체에는 코드화되어 있지 않은 세포 속의 복잡한 활동에 의해 일어난다. 그런데 그 세포는 DNA를 복제해 물려받으며 만들어진 것이다. 정보는 DNA에 있는가 아니면 다른 어디에 있는 것인가? 이들 모두인가? 닭이 먼저인가 달걀이 먼저인가처럼 이상한 고리가 있는 것처럼 보이지 않는가? 그리고 이 메시지는 보편성이 있는 메시지인가? 메시지의 층위는?
만약 이것이 컴퓨터 내부에서 발생하는 사건이라면 어쩌면 비교적 간단한 몇 개의 IPC나 RPC가 만들어지고 자동으로 트리거 되는 몇 개의 프로세스가 수천 개의 반응을 조절하는 것인지도 모른다. 만드는 일에 필요한 정보는 분석하는 일의 정보보다 훨씬 작을 수도 있다.
다른 문제는 층위에 관한 것이다. 10장의 기술층위와 컴퓨터 체계에서는 컴퓨터의 층위를 설명한다. 같은 장의 앞과 뒤 부분에는 많이 인용되는 ‘전주곡(prelude)’과 ‘개미 푸가’가 소개된다. 이 장은 사회생물학으로 유명한 E. 윌슨이 직접 초고를 읽고 감수해 주었다고 한다. 나중에 유전자 알고리즘을 만든 존 홀랜드에 의해 여러 번 다시 인용되었다.
‘전주곡’ 부분에서는 전주곡이나 푸가의 한 성부 역시 하나의 곡이라고 할 수 있다. 등장인물들은 이들을 개별적으로 따라가면서 전체를 듣는 것이 가능하지도 않으며 반대로 전체를 들으며 개별적인 성부를 듣는 것이 가능하지도 않다는 것을 이야기한다. 그럼에도 음악을 감상할 수 있는 것은 두 가지를 무의식적으로 또는 자연스럽게 오가기 때문이라고 이야기한다. 분명히 하나의 성부와 다른 성부들을 같이 듣는 것은 다른 일이다.
층위가 저절로 생기는 것은 아니다. 무엇인가에 의해 만들어진다. 예를 들어 운영체제의 층위는 프로세서 안에 있는 개개의 트랜지스터보다는 훨씬 위에 있다. 컴퓨터는 사람들이 거의 모든 것을 다 알고 있다고 생각해도 모르는 부분이 많아진다. 밖에서 보면 하나의 생물처럼 보이는 개미 군집은 작은 로봇과 같은 개미로 만들어져 있다. 개미들은 미약하고 지능이 없지만 개미 군집은 훨씬 더 많은 일을 할 수 있다.
개미핥기, 게, 아킬레스 그리고 거북이가 나온다. 이들의 대화가 개미들의 푸가와 오버랩되며 이야기가 진행된다. 이들은 처음에 전일주의(holism)와 환원주의를 놓고 입씨름을 벌인다. 전일주의는 전체가 그 부분들의 합보다 크다는 생각이며 환원주의란 각 부분과 그 ‘합’의 본성을 알아야만 전체를 알 수 있다는 생각이다. 개미는 컴퓨터의 트랜지스터처럼 생각해 볼 수 있다. 비교적 동작을 잘 알고 있기 때문에 개미를 잘 안다는 생각이 들고 이들이 하는 일 역시 잘 알려져 있지만 전체로서의 개미 군집은 이들의 모습과 다르다(가끔 물방울과 파도는 다르다는 식의 표현을 쓰기도 한다).
개미핥기는 환원주의자로 등장한다. 그러면서 자기는 개미 군락에 대한 신경외과 의사로 자처한다. 개체인 개미들은 개미핥기가 먹어 치우지만 개미 군락의 이상한 신경증상이 좋아진다고 주장한다. 더군다나 개미 군락에 하나의 인격체처럼 이름을 붙이기도 한다. 개미핥기는 개미를 마구 잡아먹는다는 다른 대화자들에게 한 개미 군락을 핥아먹었던 일을 힐러리 아줌마와 재미있게 대화했다고 이야기했다. 정말 대화는 즐거웠다는 것이다.

모두 경악하는 가운데 개미핥기는 자신의 기술이 오랜 훈련과 관찰 끝에 얻어진 숙련된 기술이라고 말한다. 개미 한 마리에게는 무서운 일이겠지만 자신은 개미의 카스트(개미들끼리의 신호를 통해 만들어진 카스트)에 새로운 질서를 부여했다고 말한다. 개미 군락의 업그레이드이며 “하나의 지식조각”을 만들어 주었다고도 말한다. 필자는 하나의 악보의 음표와 같은 개미와 성부와 같은 카스트 그리고 전체 악보와 같은 군락의 모습을 떠올린다. 이들은 모두 의미가 있다. 카논이나 푸가와 마찬가지로 책을 읽다 보면 떠오르는 이상한 마음속의 그림에 독자들이 흥미를 느낄지도 모른다(서점에 있는 호프스태터의 [[이런 이게 바로 나야!]]라는 책에 ‘전주곡’으로 나와 있는 부분만 읽어도 될 것이다. 읽어보면 많은 생각을 할 수 있다).
우리가 작업하는 층위는 컴퓨터에서 어느 정도 위치가 될 것인가를 생각해 볼 수 있다. 컴퓨터는 네트워크로 물려 컴퓨터 군락의 일부가 된다. 어느 정도의 카스트에 살고 있는지 한번 생각해 보는 것도 재미있을 것이다.
The Society of Mind
GEB 서문에는 책에 깊은 영향을 준 사람의 하나로 마빈 민스키가 나온다. 존 매카시와 테리 위노그라드는 책의 조언자로 나온다. 민스키의 대중적인 책을 이야기할 때도 되었다. 민스키의 대중적인 책은 [[The Society of Mind]]였다. 민스키는 마음이 없는 에이전트(agent)들이 모여 마음이 만들어진다고 보았다. “복잡한 모든 것은 서로 통하지 않는 부분들로 해체되어야 한다”, “걷는 것을 통제하는 뇌의 부분은 집으로 걸어가는 것인지 일하러 가는 것인지 알고 싶어하지 않는다”와 같은 아리송한 이야기들을 말해왔다.
1970년대 초기에 민스키와 페퍼트는 [[The Society of Mind]]의 이론을 형식화하기 시작했다. 어린이 심리(developmental child psychology)에서의 통찰력과 경험을 AI 연구와 결합하려는 것이었다. [[The Society of Mind]]에서는 지능(intelligence)이라는 것이 하나의 메커니즘의 산물이 아니라 다양한 종류의 에이전트들간의 상호작용에 의해 이루어진다고 제안한다. 다른 작업들은 근본적으로 다른 메커니즘을 요구하기 때문에 다양성이 필요하다고 주장하였다.
과학에서는 환원주의자가 우세하지만 현실에서는 여러 가지 이론과 법칙 같은 것을 만들어내는 소설가가 이겼는데 그 이유는 현실에서 작용하는 법칙이 과학 법칙보다 많기 때문이라고 했다. 우리가 지능이라고 생각하는 것의 정의가 항상 변하는 것이고 지능이라고 부르는 것을 만들어 내려면 법칙이 과학에서 생각하는 것보다 더 많다는 것이다. 과학자나 엔지니어는 가급적 간단한 법칙으로 설명하기를 좋아한다. 현실은 그렇지 않다. 얽혀있어서 원인과 결과와 법칙은 애매하다. 지능은 이런 곳에서도 돌아가야 한다.
1986년에 민스키는 [[The Society of Mind]]를 출간하였는데, 그 책에서는 하나의 페이지에 완결된 에세이가 270쪽에 걸쳐 서로 연결되어 있어서 민스키의 아이디어 구조를 반영하였다. 각 페이지는 어떤 심리적 현상을 설명하기 위해 하나의 메커니즘을 제안하거나 다른 페이지에서 제안한 해결책 도입에 필요한 문제를 제기한다. 책은 정식으로 출판되기 전에 초고들을 넘겨주었기 때문에 출판되기도 전에 여러 곳에 인용되었다. 민스키는 단편들로 이루어진 책을 사람들이 싫어한다고 말했다. “사람들은 줄거리가 없다는 이유로 그 책을 싫어합니다”, “줄거리가 없다는 것이 줄거리입니다” 그것은 마음이나 정신처럼 독립적인 능력이 모여있는 것이라고 설명했다. 그러니 필자처럼 이 책이 재미있다고 생각하는 사람에게는 문제될 것이 없다. 그럼에도 불구하고 생각할 것은 많은 책이다. 독자를 놀라게 만드는 글귀들은 도처에 널려있지만 다음과 같이 말한 적도 있다.
“지능을 만드는 마술과 같은 트릭은 무엇인가? 그 트릭은 바로 아무런 트릭도 없다는 데 있다. 지적인 힘은 방대한 다양성이 그 바탕이며 어떤 완전한 단일 원리가 바탕이 아니다.”
그렇다면 인공지능 책들이 점차 두꺼워지는 것도 이해가 간다. 인공지능이라고 부르는 것들 역시 지능처럼 필요에 따라 여러 가지로 정의할 수 있다.
그 다양성을 뒷받침하는 것은 자연에서는 쉽게 복제되어 엄청난 수를 자랑하는 생물들이다. 이들은 어떤 방법으로든 서로 연결되어 있는 긴 영향력의 팔을 갖고 있다. 서로 연결되어 클러스터처럼 일정한 일을 하는 조직을 만들어내기도 하고 생각하는 조직을 만들어 내기도 하며 가르쳐 준 것도 아닌데 생각을 하기 시작한다. 아마 프로그래밍으로 이런 것들을 만들어 낼 수 있다면 재미있을 것이다.
민스키의 어록은 끝이 없겠지만 1980년대에 앨런 케이와 비바리움 프로젝트를 진행할 때 이런 말을 한 적도 있다고 한다. 비바리움은 가상의 세계에서 생물을 시뮬레이트하는 프로젝트였다. “나는 엉성한 수정 프로그램에 찬성합니다. 버그를 발견하면 그것을 고치지 마십시오. 또 다른 코드를 써보고 버그가 발생하는가를 보고 그를 단념하십시오. ... 코드를 생물학적으로 소거하는 것은 비겁한 방법으로, 그것이 죽음이라는 것을 여러분은 알고 있습니다. ... 죽지 않는 것의 문제는 무한한 버그를 만든다는 것입니다.”
재미있다고 생각할 수 있다(실제로 생물들은 끊임없이 이런 일을 반복하고 있다). 아무튼 해커리즘의 전성기는 이런 재미있는 사람들이 많던 시절이었다. 민스키는 초기 해커들이 있던 연구실의 책임자였다.
다시 해커리즘으로 돌아와: 집단 해커리즘과 리스프
스티븐 레비가 쓴 [[해커]]의 1부는 다음과 같이 시작한다.
그들은 9층의 테크스퀘어 시절을 해킹의 황금시대라 불렀다. 대부분의 시간을 우중충한 기계실과 근처의 사무실에서 보냈다. 그들은 터미널 근처에 바짝 모여 앉아 터미널에 줄지어 나타나는 초록색 코드의 문자열을 바라보면서 셔츠 주머니에 꽂혀 있던 연필을 꺼내 들고 프린트되는 출력용지에 표시를 하면서 자기들만의 은어로 무한루프나 잘못된 서브루틴에 대해 떠들어댔다.
방을 가득 메운 이 기술의 수도승 무리들은 그 어느 때보다도 낙원에 가까이 다가가 있었다. 이들의 이타적이고 무정부주의적인 태도야말로 생산성과 PDP-6에 대한 열정을 높일 수 있는 힘이었다. 예술과 과학 그리고 놀이가 한데 어우러져 프로그래밍이라는 마술적 행위로 녹아 들어갔다. 이 과정에서 해커들은 컴퓨터 안에서의 정보흐름에 대해서는 전지전능한 달인의 경지에 이르렀다. 이것은 다른 의미에서 (프로그래밍뿐만 아니라) 자신들의 삶 속에 포함된 모든 오류까지도 자랑스럽게 수정해내는 과정이기도 했다.
그러나 해커들이 ‘현실세계’라는 감상으로 뒤덮여 있는 시스템으로부터 아무런 간섭도 받지 않고 그들의 꿈을 삶을 살아가려는 한 그들의 꿈은 실현될 수 없었다. 그린블러트와 나이트가 자신들의 비호환성 시분할 운영체제(ITS)가 우월하다는 것을 외부인들에게 알리는 데 실패한 예는 작은 한 그룹의 사람들이 해커 주위에 몰입된다 해서 모든 해커들이 기대하고 있는 거대한 규모의 변화를 이루어낼 수 없다는 것을 말해주는 좋은 보기였다. 사람들은 컴퓨터를 해커들과 같은 열정으로 바라보지도 않았다.
...
또 해커들의 의도를 바람직하거나 이상적인 것으로 보지도 않았다.
|
민스키와 함께 AI 연구소를 이끌던 세이무어 페이퍼트는 나중에 [[미디어랩]]의 저자 스튜어트 브랜드에게 다음과 같이 말했다.
“해커들은 컴퓨터 과학의 전선을 창조해내고 있었습니다. 설계 내역도 없이 그들은 빠르고 지저분하게 프로그램 작성을 시도합니다. 최초의 컴퓨터 그래픽과 최초의 워드프로세서, 최초의 컴퓨터 게임 그리고 최초의 시분할 방식을 만들어냈습니다. 그들에게 무엇을 해보라고 해야 먹혀 들지 않았습니다. 하지만 관심을 끌 수는 있지요.”
이들은 컴퓨터에 헌신한 집단으로 볼 수 있다. 특별한 보상이 주어지지 않았음에도 불구하고 초기 해커들은 컴퓨터를 사용하면서 황홀해했다. 자신이 하고 싶은 일에 충실한 해커들을 민스키는 “영웅”이라고 불렀다.
그러나 초기의 집단정신이 점차 퇴조하기 시작했다. 1980년대가 되면서부터 무엇인가를 개발하면 돈이 된다는 것을 안 해커들이 연구소를 떠나기 시작했다. 자신이 하고 싶은 것을 계속하는 해커들은 줄어들었다. 해커들의 황금시대는 PDP-6과 그 PDP-10과 같은 컴퓨터에서 일어났다. 세월은 바뀌고 있었다. 1세대 해커들이 컴퓨터에 빠져있던 기간에도 세상은 빠르게 변했다. 많은 알고리즘과 인공지능 프로그램이 나왔으나 그것은 시작이었다. 해커들이 만든 프로그램은 ‘빠르고 지저분하게’ 세상에 태어날 수 있었으나 그 뒤에 숨어있는 프로그래밍의 요소들은 역시 나름대로 어렵고 복잡한 문제들이 숨어있었다. 컴퓨터 과학이 빠르게 발전함에 따라 열정적으로 추구했던 프로그램 만들기가 결국 하나의 프로그래밍 도구를 만드는 수준이라는 것을 깨닫고 만 해커들도 있었다. 이들의 역할은 군사작전의 교두보 확보와 같은 것이었는지도 모른다.
1980년대가 되자 몇 명 남아있지 않은 해커들마저 빠져 나갔다. 리스프 머신 상용화를 놓고 벌인 싸움 때문에 그나마 AI 연구소에 남아있던 해커들이 양분되었기 때문이다. 당시 리스프 머신은 적당한 가격에 비교적 좋은 성능의 워크스테이션을 제공할 수 있었기 때문에 주문이 밀릴 정도로 인기가 좋았다. 해커들이 리스프가 가장 효과적으로 수행될 수 있도록 설계한 기계인 리스프 머신이 잘 팔리자 해커들의 창조성을 상업화하여 창조성을 살리면서도 돈도 잘 벌 수 있는 회사를 만들면 어떨까 하는 아이디어가 나오면서 해커들이 양분되었다. 그 후 리스프 머신도 인기가 떨어지자 사람들은 뿔뿔이 흩어졌다. 두 회사 어디에도 속하지 않은 사람은 민스키와 스톨만 정도였다. 집단적인 정신도 흩어졌다.
리스프 머신의 운영체제 ITS의 작성언어인 리스프의 운명도 달려있었다. 리스프 머신의 인기가 시들해지자 리스프는 시스템 언어가 아니라 시스템에서 돌아가는 언어의 하나가 되었기 때문이다. 폴 그레이엄은 언어의 인기에 대해 말했다(http://www.paulgraham.com/popular.html).
프로그래밍 언어의 인기에 영향을 미치는 외부 요인 하나를 인정하면서 시작해 보자. 인기를 얻기 위해 프로그래밍 언어는 인기 있는 시스템의 스크립트 언어(scripting language)가 되어야 한다. 포트란과 코볼은 초창기 IBM 메인프레임의 스크립트 언어였다. C는 유닉스의 스크립트 언어였다.
리스프는 크게 인기 있는 언어가 아니다. 그것이 크게 인기 있는 시스템의 스크립트 언어가 아니기 때문이다. 지금 인기가 남아 있다면 그 역사는 그것이 MIT의 스크립트 언어였던 1960년대와 1970년대로 거슬러 올라간다.
...
프로그래밍 언어는 고립하여 존재하지 않는다. '해킹하다'는 타동사이다. -- 해커는 보통 무엇인가를 해킹한다. -- 실제로 언어들은 무엇을 해킹하는 데 쓰이는가에 따라 판가름 난다. 그래서 인기 있는 언어를 고안하고 싶다면, 언어 외에 다른 것들도 공급하거나, 그 언어가 기존 시스템의 스크립트 언어를 대체하도록 고안해야 한다.
|
리스프는 한때 중요한 도구였고 많은 사람들이 리스프로 꿈꾸고 리스프로 숨 쉰 적이 있었다. 그만한 도구가 없었기 때문이다. 지금은 리스프의 힘은 상대적으로 줄어들었다. 리스프 커뮤니티는 예전의 힘을 찾지 못하고 있다. 결정적인 이유는 아직 사람들을 다시 끌어 모을 특별한 계기가 없기 때문이다. 사람들은 프로젝트의 성공이 장비의 성능이나 대수가 아니라 참여한 사람들의 열정과 관심에 좌우된다는 것을 알고 있었다. 결국은 사람이 먼저 프로그래밍되어야 한다고 생각할 수 있다. 개미의 푸가처럼 말하면 많은 악보가 활발하게 연주되는 상황이 되어야 집단지능의 힘이 나온다.
리스프가 요즘은 별로 인기가 없음에도 불구하고 리스프를 소개한 이유는 아직도 SICP처럼 훌륭한 책들이 교과서로도 쓰이며, 리스프에 관심을 가진 사람들이 있다고 생각하기 때문이다(민스키는 다양성이 지능의 근본이라고 말했지 않은가?). 리스프만의 강력한 표현력과 상상력이 필요한 부분도 있고 리스프를 통해 구현된 도구도 많이 남아있다. 직접 사용하지는 않더라도 리스프를 이해하면서 얻을 수 있는 것이 많다고 생각했기 때문이다.
필자가 독자들에게 바라는 것은 호기심 또는 관심이다.
[지난 Special Issue 보기]
|