팀장님으로부터 논문을 한주에 하나씩 쓰는 연습을 해보시라고 권유하셔서, 생전처음 블로그도 만들어보고, 공부도 되고, 글쓰는 연습을 계속 해보려고 한다

Growing a language는 논문인지 아닌지는 잘 모르겠다. 98년도 OOPSLA에서 발표된 자료이며, 당시 Sun에서 근무하던 Guy Steele이 저자이다.

언어적인 접근이 상당히 마음에 든다. 단어, 동사에 대한 문법적인 접근을 통해서 프로그래밍 언어의 디자인에 대해서 small하지만, 뒷사람(추후에 언어를 접근하는 사람들)에게 가능성을 디자인하도록 하는 접근이 가장 마음에 들었다.

저자는 처음부터 완벽하게 library를 제공하는것이 아니라, 틈새(niche)가 없는 small 언어가 성장이 가장 높은 언어가 될것이다라고 말을 하고 있다. 그러면서, Lisp을 추천하고 있다. (Lisp을 잘 모른다.. //TODO : study LISP)

언어의 성장 키포인트는 vocabulary와 새로운 word에 대한 의미를 정의하는 것이라며, 사람들간의 커뮤니케이션하는 언어를 묵시적으로 비교 설명하는 글이 상당히 인상적이었다.

그러면서 언"어의 일부분은 성장을 도울수 있도록 디자인하는 하는 것이다" 라고 말하며, 자바 언어의 generic types, operator overloading, user defined types, vectors가 앞으로 여러 사람들에 의해 추가될꺼라고 말을 하며 글을 읽는 독자에게 작은 언어를 만들어보라며 시도하는 것으로 끝을 내고 있다. (I urge you, too, to give it a try)

프로그래밍 언어에서는 어느정도의 틀을 틈새없이 작게 개발하여 다른 사람들에 의해 다양한 라이브러리를 추후에 개발이 되도록 디자인하는 것은 언어의 scaliability가 높일 수 있다. 지금의 JSR과 같이 다양한 소프트웨어 엔지니어들의 참여를 통해서 라이브러리를 추가하거나 언어자체에 대한 수정연구가 진행중이 Java가 가진 큰 특징이라 할 수 있다.

그런데, 너무 커지면 어떻게 될까? 개인적으로 Java의 철학, Write Once, Run Anywhere! 의 문구는 이미 현실성이 없다고 생각한다. 복잡해지고, 다양해지고, 어디가 머가 있는지, 찾기도 힘든 건 아닐까? 기능의 추가는 역시 엔지니어에게는 좋은 장점이긴 하지만, 너무 많아지만, 최초 언어를 배우는 사람에게는 커다란 진입장벽이 아닐까 하는 생각이 든다.

언어가 계속 발전하는 것이 좋은가? 아니면, 어느정도 성장을 멈춰야 하는가? Growing a language에 대한 나의 입장은 아직은 지켜보아야 할꺼 같다.


상대적으로 중간에 읽다가 어려워서 손을 놓은 다른 논문과 달리 이글은 상당히 이해하기 쉬워서, 나의 첫 블로그에 글을 남기는데 좋은 자료가 될 꺼 같다.
Posted by '김용환'

댓글을 달아 주세요