지난 월요일, 애자일컨설팅의 김창준님이 블로그에 올리신 “일본인 스몰토크 전문가들과의 만남”이라는 번개 공지를 보고 ‘스몰토크를 잘 모르는데 어쩌지’ 하는 불안한 마음을 가지고 모임에 참여했습니다.
아베 카주히로씨와 요코카와 코지씨 두 분이 PINY 캠프에 도움을 주기 위해 자비를 들여서 건너오셨다고 하더군요. 그 2분과 한국 분들 해서 18명 정도가 모였던 것 같네요. 각자 자기 소개를 하는데 게임 회사에 다니시는 분들이 대강 3/4 정도는 되었던걸로 기억합니다. 게임 회사에 다니시는 분들이 그렇게 한 자리에 많이 모여있는건 처음 봤구요, 제가 생각하기로는 스몰토크와 스퀵이라는 다소 비주류인 분야에 관심을 가질만한 분들이 창의적이고 개성있는 분들이라서 게임 회사 분들이 많이 오신게 아닐까 합니다.
주로 사용하는 언어도 Java, C++, PHP 등에서 io, python, RoR 등 다양했습니다.
원래는 이런 저런 이야기를 형식 없이 나누는 모임을 기대했는데, 의외로 스몰토크나 스퀵에 대해서 잘 알지 못하는 분들이 (저를 포함해서) 1/3 정도 되셔서 아베상이 스퀵의 소개부터 해나가셨습니다.
최초의 퍼스널 컴퓨터가 무엇일까 하는 질문을 가장 먼저 하시더군요. 내심 Dynabook이 아닐까 생각했었지만, 자신이 없는 관계로, 또 최초는 아닐 것 같아서 말을 하지 않고 가만히 있었더랬죠. 최초의 퍼스널 컴퓨터는 ALTO라고 하시더군요. 1973년도에 개발되었다고 합니다. 애플이나 다른 컴퓨터들도 비슷한 시기가 아니었냐 하는 반론들도 있었지만, 아베상이 제시한 기준 - 무엇이었는지 잘 기억은 나지 않지만 - 에 따르면 ALTO가 그 중에서도 큰 의미를 가지는 퍼스널컴퓨터였다고 합니다.
그리고 이 ALTO에 바로 스몰토크가 탑재되어 있었다고 합니다. 직접 동작하는 영상도 보여주셨는데요, 초기의 Mac OS나 Windows에서도 볼 수 있는 정도의 수준의 GUI를 탑재하고 있더군요. 워드 프로세서도 무려 Cut&Paste라는 막강한 기능도 지원하고요.
이런 편리한 OS와 컴퓨터를 만든건 Xerox의 Palo Alto 연구소였습니다. 하지만 이 연구소의 목적과는 달리, 이 프로젝트를 직접 진행했던 사람들의 목적은 약간 달랐는데요, 바로 ‘어린이’들을 위한 목적이었습니다. 그 배경에는 앨런 케이(Alan Kay)를 비롯, 아델 골드버그(Adele Goldberg, ACM의 chair-person이었다고 하더군요) 등이 있었지요.
다른 OS들에서는 Text mode를 먼저 지원하고, 차츰 차츰 기능의 개선을 해나가면서 편리함을 위해 GUI를 도입하는 시기가 온 것이라면, ALTO 및 스퀵은 바로 ‘어린이들이 사용할 수 있으려면 GUI가 필요하다’라고 해서 GUI와 IDE 등을 개발 초기부터 필수 요소로 염두에 두었다고 하더군요.
앨런 케이는 ‘어린이 교육을 바꾸면 미래를 바꾼다’라고 말하곤 했었다지요.
그래서 아이들이 직접 프로그래밍을 하고 활동을 할 수 있게 하기 위한 환경을 만들다보니 당시의 ALTO가 나온 것이더군요. 실제로 ALTO에서 동작하는 CAD 프로그램의 작동 영상을 보여주셨는데요, 그걸 중학생이 만들었다고 하시더라구요. 누군가 ‘저 CAD 도면을 만들었다는건가요?’라고 물어보니 ‘저 CAD 프로그램을 만들었습니다’라고 하시더군요.
객체지향(OOP)이라는 프로그래밍 개념도, 아이들이 어떻게 프로그래밍을 할 수 있게 할까를 생각하다가 고안해낸 것이라고 하구요. 내심 ‘내가 아이들도 할 수 있게 쉽게 만든 개념을 가지고 프로그래밍하고 있는거구나’라는 생각에 민망함을 느끼기도 했습니다.
이미 40여년 전에 ALTO와 같은 GUI 환경, Visual Programming 환경을 만들고, 현재의 노트북과 비견해 손색없는 노트북 프로토타입(Dynabook)을 만들었는데, 현재의 컴퓨터는 왜 이렇게 아직도 사용하기 어려운 것일까를 생각하면서, ‘시간이 지나면 컴퓨터가 점점 발전되고 점점 좋아지기만 하는 것은 아니’라는 생각이 들었습니다. 토머스 쿤이 [과학혁명의 구조]에서 주장했듯, 어떤 혁신적인 생각(Revolutionary think)과 목적의식이 발전을 이끄는 것이라는 생각을 다시금 하게 되었습니다.
초기의 스몰토크, ALTO와 같은 실험들이 현대까지 이어진 것 중 하나가 바로 스퀵이고요. 스퀵을 사용해서 아이들이 직접 프로그래밍을 해보고 프로그래밍적인 사고를 할 수 있게 도와줘야 한다는 말을 하시더군요. 그리고 스퀵을 소개할 때 어디서나 볼 수 있는, 자동차 그리기 예제를 소개해주셨습니다.
여기까지가 서론이고, 이제부터 자유롭게 논의를 시작하자고 이야기한 시간이 무려 8:30이 넘었던걸로 기억합니다. 시간이 너무 많이 흘러버렸죠.
짧은 시간이지만 최대한 많은 이야기를 했습니다.
스퀵을 사용해 가르쳤던 아이들에게 어떤 변화가 있었는지라는 질문에는, 본인이 스퀵을 가르쳤던 아이들에 대한 자료는 일본 개인정보보호 규정상 남아있지 않고, LOGO를 배웠던 아이들이 성인이 된 이후의 인터뷰 아티클이 발표된게 있다고 하시더군요. 그 아이들 (지금은 어른이 된)은 직업은 제각각 달랐지만 수십년이 지난 이후에도 손쉽게, 흔쾌히 즉석에서 LOGO를 사용해 프로그래밍을 할 수 있었고, ‘프로그래밍’이라는 개념을 친숙하게 여기고 생활 속에서 적용하는 모습을 찾아볼 수 있었다고 합니다.
스퀵의 매력이 무엇이냐는 물음의 답변 중에는 스퀵은 마치 던전 같다. 수십년 전의 전설적인 프로그래머들의 코드가 지금의 스퀵 내부 코드 중에 남아있는 경우도 종종 있다. 스퀵의 내부를 돌아다니다가 이런 코드를 마주치기도 하고 마치 재미있는 RPG 게임을 하는 것 같다. 라는 답변도 하셨습니다.
코지상에게도 질문이 이어졌는데요, 그분은 프리랜서 프로그래머로 현업에서도 스퀵을 사용하신다고 하시더군요. 제가 ‘스퀵/스몰토크로 진행한 비지니스 프로젝트가 있느냐’라고 질문했더니 전문가 시스템, SeaSide를 활용한 웹 프로젝트, POS, 무슨 무슨 다양한 매니지먼트 시스템 등을 스퀵/스몰토크로 수행하신 경험도 있다고 하시더라구요. 나중에 와서 생각하니 그런 질문은 코지상의 개인 홈페이지에 이미 게시되어 있는데 아까운 질문을 한 것 같다는 생각도 들더군요.
사실 스몰토크보다는 스퀵 얘기가 주로 오갔지만, 재밌는 시간이었습니다. 폰카로라도 사진도 좀 찍어둘 걸 하는 생각이 드네요.
아 그리고 마치기 직전에 OLPC XO를 보여주시면서, 개발자들의 관심과 참여를 부탁하셨습니다. 우리가 후손들에게 물려줄 수 있는 것들을 위해 노력하자고 하시면서요. XO의 실물을 보니 꽤 쓸만해보이더군요.
이번 모임은 시간이 너무 부족해서 참 아쉬웠습니다. 물어보고 싶은 것도 참 많았는데. 꼭 일본 분들이 아니더라도 이런 이야기할 기회가 종종 있었으면 좋겠네요.
참고로 PINY 캠프는 지난주 금,토,일 3일 동안 잘 진행했다고 하구요, 참가자가 약 30여명이었다고 합니다. 학생들이 만든 스퀵 결과물을 승범님이 보여주실 모양이었나본데 시간상 생략되어서 아쉽네요. 나중에 캠프 홈페이지에서 볼 수 있겠지요.