아래의 글은 내가 "프로그램세계'에 실었던 기사이다. 정확히 몇년인지 기억이 가물거리는데, 대강 95년 쯤의 일이 아닌가 싶다. 이를 계기로하여, "프로그램세계'에 "씨앗"에 대해서 6개월에 걸친 연재를 실은 적이 있다. 원고는 다섯 개의 부분으로 나누어져 있다.
우리나라에 컴퓨터가 보급된 후 지금까지 한글을 표현하려는 노력이 있어왔고, 우리글, 우리말로 된 소프트웨어 개발이 꾸준히 진행되어 왔다. 초창기에 한글 카드나 에뮬레이터를 이용하던 프로그렘들로 부터 시작하여, 지금은 내장 한글 방식의 여러 유용한 프로그렘이 많이 나오고 있다. 그만큼 컴퓨터의 환경이 많이 한글화 되었다는 이야기이다. 하지만 우리들은 한글을 나타내기 위해 영문으로 된 프로그렘 언어를 배워야 했고, 또 그것이 당연하다고 생각해왔다. 그래서 프로그렘에 입문하는 사람들은 당연히 영어에 능숙해야 한다는 풍토가 생겨났 다. 만일 빌 게이츠가 우리나라에 태어났다면 그는 아마 프로그렘을 배우기 전에 영어에 매달려야만 했을지도 모른다.
<씨앗>은 이러한 잘못된 생각을 불식시키기 위해서 1990년에 나눔 기술에서 개발되었다. 그리고 올 4월에 1.0판이 첫 선을 보였다. 씨앗은 아직 뿌려진지 오래 되지 않은 언어이다. 우리가 잘 기르고 돌보아 주지 않으면 그 뿌리를 내리지 못할 것이다. 나는 이제 씨앗을 심어 기른지 6개월이 된 농사꾼(?)이다. 내가 씨앗을 써 보고 느낀 점을 담담하게 써 보려 한다. 아래에 쓰는 글은 어느정도 프로그렘을 해본 사람을 대상으로 하고 있다. 최소한 베이직을 알면 좋고, C나 파스칼을 아는 사람이라면 더욱 더 좋겠다. 물론 프로그렘을 모르는 분들도 아래의 글을 읽어보고 씨앗이 어떤 언어인지를 알 수 있다고 생각된다.
씨앗은 '한글 프로그렘 언어'이다. 베이직, 파스칼, C와 같은 언어들은 모두 영어권 문화에서 개발된 언어로써, 언어의 구성요소가 모두 영어로 되어 있고, 문법도 영어의 어순을 따르고 있다. 하지만 씨앗은 한글 언어이다. 우리나라에서, 우리나라 사람의 손으로 만들어졌고, 또 우리내 생각을 표현할 수 있도록 모든 것이 한글로 되어 있고, 문법 또한 한글 어순에 맞춰 설계되어 있다.
가령 프로그렘할 때 자료의 합계를 나타내는 변수가 필요하다고 생각해 보자. 이 때 우리는 "합계"라고 생각하면서 실제로 변수명을 지을 때에는 'total
', 'Sum
', 'HabGye
',.. 와 같이 영어로 표현해야 했다. 하지만 씨앗은 한글 언어이다. 모든 것이 한글로 되어 있기 때문에, 변수명과 같은 명칭도 한글로 지을 수 있다. 씨앗에서라면 그냥 '합계
'라고 하는 것만으로 족하다. 모든 것을 한글로 표현할 수 있다는 것은 바로 "생각한 것을 그대로 표현할 수 있다"는 말이다.
아무리 좋은 언어가 나온다 해도, 우리의 모국어가 영어가 아닌 이상, 생각한 대로 표현할 수는 없다. 이렇게 씨앗은 언어의 모든 요소가 한글로 되어 있어서 우리의 생각을 그대로 프로그렘에 반영할 수 있다. 씨앗이 가지는 장점중의 장점은 바로 이것이다.
이 말을 하면 어떤이는 "한글로 되어 있으니 당연히 다른 언어보다는 읽고 쓰기가 쉽지 않겠느냐"고 할 것이다. 하지만 씨앗은 영문 언어의 지정어(Key Word)만을 직역한 언어가 아니다. 예를 들어보자.
(1) here:
if (a == 3) goto here;
(2) 여기:
만약 (가 == 3) 가기 여기;
(3) <<여기>>
가 = 3 { 참이면 여기 갈피로 간다. }
가령 (1)의 문장을 그대로 직역한 것이 (2)인데, (2)는 (3)보다 읽기가 불편하다. (2)도 (3)도 모두 한글로 되어 있는데, 왜 (3)쪽이 읽기가 더 쉬울까? 그것은 (2)는 영문 어순의 단어들을 단지 한글로 바꿔치기 한것 뿐인데 반하여 (3)과 같은 경우에는 한글의 어순에 따라 문장을 만들었기 때문이다. 바로 이것이 씨앗의 특징이다. 단순히 단어들을 한글로 바꿔치기 한 것이 아니라 완전히 세로운 토대 위에 한글의 어순을 생각해서 만든 언어가 바로 씨앗이다. 그러므로 읽기와 쓰기가 쉽다.
예를 하나 더 들어보면, C의 함수중에 strstr()
이란 것이 있다. 그런데 C를 왠만큼 한 사람들도 이 함수를 보게 되면, 도대체 무슨 일을 하는 함수인지 짐작하기가 힘들다. 심지어 외국 사람들도 알아보기가 힘들것이다. 그런데 씨앗에서는 C의 strstr()
함수와 대응되는 '글줄찾기()
'라는 절차가 있다. 그냥 그 명칭만을 봐도 어떤 일을 하는 절차인지를 쉽게 알 수 있다. 따라서 씨앗으로 된 바탕글은 풀이글(comment) 없이도 분석이 가능하다. 씨앗의 언어 자체가 풀이글의 역할을 해 주고 있기 때문이다. 이것 역시 무시할 수 없는 장점이 아닐까?
그런데 여기서 "하지만 씨앗의 명칭은 다른 언어들보다 산만하다."라고 말하는 이가 있을지 모른다. 사실 씨앗의 바탕글과 다른 언어의 바탕글을 비교해 볼 때, 씨앗의 그것은 시각적으로 상당히 번잡하다(?)고 생각할 수 있다. 하지만 그것은 바탕글의 전체 윤곽을 볼 때의 이야기이다. 위에서도 예를 들었듯이, 씨앗의 어휘들은 모두 한글로 되어 있으므로, 눈에 금방 들어온다. 더구나 씨앗의 바탕글 편집기는 각각의 어휘들을 따로 따로 문법 돋이(Syntax Hilting)해 주기 때문에 바탕글을 읽기가 오히려 더 쉽다고 본다. 그리고 바탕글은 한 번 작성되고 여러번 읽혀지기 때문에 명칭이 길어져서 키보드를 치는데 시간이 걸리더라도, 실제로 나중에 바탕글을 이해하는데에 걸리는 시간은 다른 언어보다 훨씬 빠르다고 필자는 생각한다. 독자들도 씨앗의 바탕글을 접하게 되면 거의 다 필자와 같은 생각을 하게 될 것이다.
씨앗은 "한글로도 프로그렘이 가능하다"는 것을 보여주기 위해서 개발된 언어도 아니요, 프로그렘 초보자들에게 교육을 목적으로 작성된 언어는 더욱 아니다. 씨앗은 실용 프로그렘을 만들 목적으로 개발된 범용 프로그렘 언어이다. 실제로 씨앗은 C나 파스칼이 가지고 있는 특징들을 많이 반영하고 있을 뿐 아니라, 이러한 언어들보다 훨씬 뛰어나다. 씨앗이 다른 언어보다 뛰어난 점이 바로 '단원화 프로그레밍'이다.