티스토리 뷰

컴퓨터는 0과 1로 된 기계어를 처리한다. 고급 프로그래밍 언어는 인간이 기계어 명령을 좀더 쉽게 작성할 수 있도록 도와주기 위한 목적으로 만들어졌다. 그런데, 대부분의 고급 프로그래밍 언어는 영어 어휘를 바탕으로 만들어졌다. 그 이유는 프로그래밍 언어의 기초가 되는 언어철학 -그 중에서도 특히 기호논리학- 이 영미권에서 발달했기 때문이다.
 
물론 고급 프로그래밍 언어는 영어 어휘를 바탕으로 만들어졌다 해도 기계어보다는 쉽다. 왜냐하면 인간 언어가 가지고 있는 공통적인 구조를 바탕으로 하기 때문이다. 그렇지만 비교적 쉽다고는 해도 모든 사람에게 똑같이 수준으로 쉬운 것은 아니다.

영어 어휘를 바탕으로 한 프로그래밍 언어는 사고의 흐름이 영어로 되어 있는 사람이 받아들이기 쉬운 체계이다. 사고의 흐름이 한국어로 되어 있는 사람은 사고한 결과물을 영어로 바꾼 뒤에 코딩을 시작하게 된다. 즉, 영어가 모국어인 사람에 비해 한국어가 모국어인 사람은 프로그래밍에 하나의 사고 단계가 더 추가된다.

이 단계가 얼마만큼의 부담이 되는지는 사람마다 다를 것이다. 내 경우에는 어렸을 때 컴퓨터학원에서 베이직과 C를 약간 배웠는데 영어를 잘 못했기 때문에 구문의 의미를 알 수가 없어서 재미가 없었다. 지금 생각해보면 한국어로 된 프로그래밍 언어였다면 조금 더 재미를 쉽게 붙이지 않았을까 싶다. 즉, 그 시절의 나처럼 영어를 모르는 사람에게는 고급 프로그래밍 언어라고 해도 '내가 사고하는 언어'에 가깝지 않기 때문에 여전히 어려운 것이다.

(사족이지만 OS에 GUI를 적용했을 때의 최대 장점 중 하나는 언어 장벽을 뛰어넘기 쉽다는게 아닌가 싶다. DOS 시절에 영어로 된 명령어를 일일히 쳐야 했던 것을 기억해보면 말이다.)

C언어로 예를 하나 들어보겠다.

---------------------

#include <stdio.h>

void main() {
printf("Hello World\n");
}

---------------------

내 경우에는 제일 처음에는 이런 간단한 프로그램 하나를 짜는 것도 뭔가 생소하고 꺼림직한 느낌이 들었다. 영어 어휘의 의미를 모르고 배우려면 모든 것이 암기일 수 밖에 없게 되기 때문이다. (나는 암기에 약한 편이다.)

하지만 이것이 만약 한국어로 되어 있다면 좀더 자연스럽게 받아들일 수 있었을 것이다. 예를 들어.

---------------------

#포함시키시오 <표준입출력.서두>

비어있는 핵심() {
인쇄 함수("안녕 세상아\줄바꿈");
}

---------------------

(원래의 C언어 구문에는  stdio같은 축약형 어휘가 포함되어 있지만 한국어로 되었을 때의 느낌을 좀더 잘 전달하기 위해 축약형 어휘는 굳이 반영하지 않았다.)

프로그래밍 언어가 이렇게 되어 있다면 한국어를 기본적인 사고 언어로 하는 사람이 받아들이기 쉽다.

이런 생각에서 한글로 된 프로그래밍 언어를 만든다면 어떨까 하는 아이디어를 떠올리게 되었다. 나 혼자 이런 생각을 한 것을 아닐 것 같아서 구글에서 검색해서 찾아보니 이미 몇 가지가 있다는 것을 알게 되었다. 아래는 검색 결과를 추려놓은 링크이다.

창조 http://qaos.com/viewtopic.php?topic=9777&forum=1
아희 http://sapzil.info/soojung/entry.php?blogid=603
고로 http://forum.rubykr.org/viewtopic.php?t=4393&
한글 파이썬 http://www.python.or.kr/pykug/_c7_d1_b1_db_20_c6_c4_c0_cc_bd_e3_c0_cc_b6_f5_3f
기타 관련 http://kldp.org/node/52918
http://sizuha.egloos.com/2664096

추신:

한국어 어휘를 기초로 하는 프로그래밍 언어가 얼마나 큰 장점을 가질지는 사실 언어 심리학적으로 접근해야 할 문제이다. 개인적으로는 프로그래머들을 모아놓고 RT(반응시간)를 측정하여 계량적인 분석이 가능한 문제라고 생각한다. 논문으로 써도 흥미로운 주제일듯.

추신2:

다른 사람들의 글에서도 지적된 내용이지만, 한글 프로그래밍 언어가 충분히 '쉽기' 위해서는 어휘를 한글로 바꿔서 끝나는게 아니라 사고의 흐름을 옮기기 쉬운 형태로 만들어야 한다. '고급' 프로그래밍 언어가 자연어에 가까운 것을 이상으로 한다는 점과 같은 맥락이다.