Good Ideas, Through the Looking Glass

Posted 2006. 11. 3. 15:01
"Good Ideas, Through the Looking Glass"는 파스칼, 오베론(Oberon) 언어의 아버지인 Niklaus Wirth(1984년 Turing Award 수상자이기도 합니다)가 Computer Science 역사에 등장한 여러 가지 아이디어를 뒤집어보면서 작성한 글입니다. 특히 Wirth의 전문 분야인 컴퓨터 아키텍처, 프로그래밍언어 등을 중심으로 서술하고 있습니다.

Wirth는 스위스 연방공대(ETH)를 중심으로 발달한 파스칼 계열 프로그래밍 언어의 거두라고 할 수 있는데, 의외로 "함수형 언어"에 대해서는 큰 회의를 가지고 있습니다. 그의 논리는 State의 중심의 현대 컴퓨터 아키텍처에서, Stateless한 함수형 언어는 필연적으로 구현이 까다롭고 직관적이지 못하다는 것입니다. Stateless한 함수형 언어가 State한 아키텍처 위에서 구현되다 보니 편법을 동원한 복잡하고 까다로운 개념들이 등장할 수 밖에 없다는 거죠.

가비지 콜렉션은 자바, C# 등에 사용되면서 요즘은 명령형 언어에도 일반화되었지만, 원래는 함수형 언어의 전매 특허 같은 것이었습니다. Wirth에 따르면 가비지 콜렉션은 새로 계산한 값을 기존 변수에 대입하지 못하고 계속 새로운 메모리 공간에 저장해야 하는 함수형 언어의 태생적인 구조로 인해 필수 불가결한 요소가 되었다고 합니다. 즉 함수형 언어에 가비지 콜렉션이라는 멋진 개념을 추가한 것이 아니라, 함수형 언어이기 때문에 가비지 콜렉션을 추가할 수밖에 없었다고 보는 것이 맞다는 거죠.

함수형 언어의 기여로는 '함수형'이라는 특징보다는 'Nested Structure'가 더 중요했다고 이야기하고 있습니다. 그 외에 Concurrency에 대해서도 Side-effect가 없는 함수형 언어가 유리할 수도 있지만, 궁극적으로는 객체지향 언어가 더 유리할 것이라는 전망을 하고 있네요.