씨앗이 죽을 수 밖에 없었던 이유....

 
2년 여 동안 나를 들뜨게 했고, 프로그래밍에 대한 내 생각의 깊이를 한층 깊게 했던 아름다운 한글 언어인 "씨앗"이, 결국 죽어서 썩어질 수 밖에 없었던 이유가 무엇일까? 이 이유를 곰곰히 살펴보면 결국 내가 지금 공부하고 있고 주된 언어로 쓰고 있는
SmalltalkSmalltalk
Smalltalk
의 장래 역시 어느 정도 가늠해 볼 수 있을 것 같다.
 

1. 너무나 닫혀 있는 언어 -- 나눔기술의 욕심

가장 크게 작용했던 것은 "나눔기술"의 욕심이 아니었을까 싶다. 어떤 기업이든지 이익이 되지 않는 사업을 손해를 보아가면서 까지 할 수는 없음을 나는 안다. 그래서 씨앗 개발팀을 축소했을 테고, 씨앗을 하러 들어온 박석봉 님이나 기타 다른 분에게 씨앗이 아닌 다른 일을 맡겼으리라. 이런 현실에 결국 박석봉 님은 회사를 떠나고 남아 있는 분들 역시 씨앗을 계속하기 위한 여력이 없었음은 불을 보듯 뻔한 일이다. 물론 박석봉 님의 퇴사나 씨앗 팀의 축소 등에 대해서 나는 "나눔기술"의 사정에 대해서 아는 바가 없으므로 속단하기는 이를 일이다. 그러나 안타까운 것은 "나눔기술"이 씨앗을 포기한 뒤의 일이다.
씨앗은 언어 명세를 제외한 다른 모든 것을 굳게 닫아 놓았다. 컴파일러와 통합환경, 한글 환경 '태극', 어셈블러인 "한모셈" 등 모든 것에 대한 소스를 공개하지 않았고, 그 저작권을 포기자히 않았다. 따라서 사용자 동호회에서 소스 코드를 받았다고 해도 "나눔기술"이 저작권을 포기하지 않았기 때문에 회원들에게 배포할 수 없었다.
만약 씨앗이 오픈소스로 전향되어서 소스가 배포되고, 실력이 있고 관심이 있는 사용자들이 언어와 환경을 계량할 수 있었다면 어뗐을까? 결국 윈도우 환경에도 심을 수 있는 씨앗의 품종 계량이 이루어지지 않았을까? "나눔기술"이 씨앗의 저작권을 포기하고 모든 걸 열어주었다면, 
PythonPython
Python
, Squeak 등과 같은 수많은 오픈 소스 언어와 같이 한국을 대표할 언어로 자리매김할 수 있지 않았을까?
 

2. 외부 환경과의 단절

씨앗이 죽을 수 밖에 없는 두 번째 원인, 이것은 바로 "외부 환경과의 단절"이다. DOS환경에서 개발된 대부분의 언어가 가지고 있는 문제이기는 했지만, 만약 다른 언어가 만들어낸 OBJ 파일에서 함수나 절차를 호출할 수 있었다면 씨앗용 라이브러리들이 많이 개발되었을 것이다. 이를테면, MS-C의 경우는 벌써부터 Quick Basic과의 연계를 위하여 C나 베이직의 호출 관행을 사용할 수 있었다. 씨앗 역시 표준 OBJ 파일을 사용할 수 있었기 때문에, 호출 관행을 설정할 수 있도록 언어가 확장되었다면 보다 더 많은 라이브러리들이 만들어졌을 것이다.
 

3. 운영체계의 변화 -- 윈도우 95

씨앗이 더 이상 '개발 언어'의 위치를 지킬 수 없었던 이유는 바로 1995년에 "윈도우 95"(Windows 95)가 출시되었다는 것이다. 이는 얼마 정도의 성숙기를 거친 뒤 1996년부터는 PC의 운영체계에 혁명을 몰고왔다.
결국 "나눔기술"도 새로운 환경에 맞는 그룹웨어인 "워크플로우 for 윈도우"를 개발하기 위해서 모든 능력을 동원해야 했으므로, 돈이 안 되는 컴파일러 사업에 투자할 여력이 없었던 것이다. 거기다가 씨앗과 관련된 모든 소스의 저작권을 포기하지 않고 있으니, 실력 있는 개발자라 하더라도 씨앗을 윈도우로 이식할 수 있는 가능성이 막혀벼렸다.
씨앗의 한글 환경 태극. 결국 이것은 윈도우로 넘어오면서 자연스럽게 "한글 입출력 시스템"으로 인해 빛이 바랠 수 밖에 없었고, 비록 복잡하기는 하지만, IME에 대한 MS의 지원이 강력했기 때문에, 윈도우에서 실행되는 한글 어플리케이션을 굳이 "씨앗"이나 "태극" 없이도 만들 수 있게 되었다.
만약 실력 있는 개발자에 의해서 씨앗의 컴파일러가 윈도우용으로 이식되고, 한글 환경 태극 역시 윈도우에 이식되었다면, 그래서 윈도우의 출력 시스템과 IME 시스템이 태극과 접속할 수 있었다면, 씨앗의 또 다른 시대가 열렸을 것이다.
 

4. 새로운 개발 환경의 등장 -- Delphi, Visual Basic

윈도우 환경이 자리를 잡으면서 GUI 프로그램을 개발하기 위한 새로운 개발 환경들이 우후죽순처럼 생겨났다. Delphi, Power Builder, 그리고 Visual Basic까지...
RAD라고 하는, 어플리케이션의 개발 방법 자체를 바꾸어 놓은 이들 언어들은 당장 사용해야 할 윈도우용 프로그램을 개발하는데 적격이었다. 거기다가 MS는 Visual C++ 을 내 놓았고, Borland 역시 여러 가지 컴파일러를 내 놓았다. 이러한 컴파일러들과 환경들은 윈도우용 어플리케이션의 개발을 촉진시켰으며, 결과적으로 씨앗의 빠른 쇠퇴의 원인이 되었다.

5. 나눔기술의 닫힌 생각 -- 꼭 Algol-like여야만 했을까?

"씨앗"이 C언어와는 다른 언어라고 하지만, 결국 뿌리를 좆아 올라가면 Algol-like언어이다. 씨앗이 꼭 이런 형태의 언어여야만 했을까? 만약 박석봉 님이 Smalltalk에 대해서 알고 계셨고, 직접 그 환경을 사용해 보셨다면 어떠했을까? 씨앗 개발이 시작될 당시인 1990년에 이미 DOS상에서 훌륭하게 돌아가는 Smalltalk/V 가 있었고, 1995년에는 Windows 3.1/95에서 돌아가는 Smalltalk/V for Windows 도 있었다. 만일 씨앗이 Smalltalk와 같은 형태의 객체지향 언어였다면 어뗐을까?
모든 소스가 열려있고, 그래서 사용자들이 새로운 기능을 추가하여 확장할 수 있는
ForthForth
Forth
나 
SmalltalkSmalltalk
Smalltalk
와 같은 구조로 씨앗이 만들어졌다면 또 어뗐을까? 아니, 백 걸음을 양보해서, 씨앗이 꼭 컴파일러형 언어여야만 했을까? 스크립트 언어나 인터프리트형 언어이면 안 되는 것이었을까? 그래서 윈도우 환경에서도 비교적 쉽게 인터프라터를 만들 수 있었다면 어뗐을까?
박석봉 님께 씨앗 1.00 판에 "소스 레벨 디버거"가 없음을 투덜거렸더니, 이러시더라.
"디버거를 만드는 일은 컴파일러를 만드는 일만큼 어렵습니다."
이건 너무나 당연한 대답이다. Reflection을 전혀 염두에 두지 않고 설계된 algol-like 언어의 경우 디버거 만드는 게 예삿일이 아니라는 것을.... 만약 씨앗이 Smalltalk와 같이 객체지향적이고, 객체와 클래스에 대한 모든 메타데이터를 가지고 있었다면, 디버거를 만드는 일이 어렵지 않았을 것인데.... 정말, Smalltalk 환경을 한 번이라도 사용해 보시고, 그 이미지를 구성하는 수많은 객체들의 바다에 몸을 담가 보셨다면, .... 얼마나 좋았을까?
빌 게이츠가 베이직 언어 말고 Smaltlalk나 Forth와 같은 비주류 언어를 알게 되었다면 프로그래밍 언어의 역사가 다시 쓰여졌을 거라는 말을 들은 적이 있다. 정말, 박석봉 님이 Smalltalk와 같은 열려 있고 일관된 개념을 갖는 환경을 한 번이라도 써 보셨다면, 그 넘치는 상상력을 보다 더 잘 이용하셨을텐데.. 안타깝다.
 

맺으면서.....

지금까지 20개가 훨씬 넘는 글들 앞에 [씨앗]이라는 머리말을 붙여서 올렸다.
"한글날"인 일요일, 오늘, 쉬는 틈틈히 10 여년 전의 자료를 정리하고 포스트를 쓰는 동안, 참 많은 생각을 하게 되었다. 한 언어와 개발 환경의 짧은 생을 통해서 정말 나는 많은 걸 배울 수 있었다.
"객체지향" 이야기도 아니고, 그렇다고 "Smalltalk" 이야기도 아닌 "씨앗"에 관한 이런 이야기를 내 블로그에 올리는 것은, 결국 "씨앗"도 비주류 언어였으며, 무엇보다 내가 씨앗에서 갈고 닦은 '결합도가 낮아야 하는 프로그래밍"에 대한 생각들이 이후 Delphi와 Smalltalk를 공부하는데 크게 도움이 되었다는 것이다.
오늘 뉴스를 들으니, "한글날"의 존재를 아는 대학생이 절반에 미치지 못한단다. 과연 오늘이 "한글날"임을 깨닫고, 우리 글과 우리 말이 얼마나 소중한지 느끼고 생각했던 사람이 얼마나 될까. 말과 글은, 특히 글은 그 겨레의 생각을 좌우한다. 우리가 지금과 같이 한글을 업신여긴다면, 우리의 생각은 점점 더 그 정체성을 일을 것이 뻔하다. 이는 프로그래밍 언어에서도 마찬가지다. 물론 훌륭한 언어들을 습득해서 사용해야 하는 것은 당연하지만, 한글 프로그래밍 언어에 관심을 가지고, 프로그래머를 꿈꾸는 어린 학생들에게 한글로 된 프로그래밍 언어를 가르친다면 얼마나 좋을까?
10 여년 전에 하나의 '한글 언어'가 있었고, 그 언어는 오래지 않아 역사 속에 묻히게 되었다. '씨앗'은 결국 새싹만 티우고 나무가 되지 못한 채 죽어서 썩어버리고 말았다.
그렇지만 씨앗은 이렇게 끝나지 않는다.
비록 씨앗이 나무가 되지 못하고, 열매가 되지 못했지만, 씨앗은 죽어서 거름이 되어, 다른 나무들이 자라는 것을 도와주었기 때문이다. 그래서 내가 씨앗을 공부했던 3년이라는 시간이, 결코 헛되지 않았음을 다시 한 번 느끼게 된 오늘 하루였다.
부디 내가 올렸던 씨앗에 관한 글들을 여러 사람들이 읽게 되어, 우리 나라에서도 이렇게 훌륭한 한글 언어가 있었음을 알게 된다면 공들여 쓰고 모았던 글들이 나에게 큰 보람이 될 것이다.