“프로그래밍 언어 설계에 필요한 원칙” 중에서

  • 프로그래밍 심리학에서 발췌

(전략)
내가 새로운 프로그래밍 언어를 만든 적이 없는 건 사실이지만, 프로그래밍 언어의 설계 원칙들을 만들어 내지 않았던가? 다시 말해서, 나는 프로그래밍 언어 설계의 설계자였다.
설계 원칙을 만들었을 뿐이므로 나는 책임은 지지 않은 채 경기장 밖에 안아 훈수를 둘 수 있었다. 이제는 고백하겠다. 나는 최초의 어셈블리어에도, FORTRAN에도, APL에도, COBOL에도, PL/1에도, Simula에도, IBM System/360 기계어와 작업제어 언어에도, Pascal에도, 프로그래밍 언어의 형식적 기술을 위한 비엔나 정의 언어(Vienna Definition Language, VDL)에도 훈수를 둔 사람 가운데 한 명이었다. FORTRAN 개발자들과 컴퓨터를 공유했고, FORTRAN의 오브젝트 코드를 비판했으며, FORTRAN이 결코 오래 가지 못할 거라고 잘못 예견했다. APL의 창시자 켄 아이버슨(Ken Iverson)이 공개 비판을 받고자 언어에 대한 자신의 생각을 최초로 밝히던 자리에도 있었다. 또, MetaCOBOL 프로젝트에도 참여했고, 스위스에서는 Pascal의 아버지 니클라우스 워스(Niklaus Wirth)와 함께 있었으며, IBM Vienna 연구소의 하인츠 제마넥(Heinz Zemanek)의 팀과도 함께 있었다. 고백이 이렇게 힘들 줄이야. 그런데 아직 끝이 아니다. 사실은 Algol(원래 버전은 물론이고 그 이후의 버전들까지), C, Smalltalk의 초기 버전에 대해서도 영향을 끼쳤다(별로 알려진 사실은 아니지만). 게다가 태어나지 못하도록 내가 일조를 했을지도 모르는 수십 개 언어들도 있다(내가 가장 자랑스럽게 생각하는 부분이다). 그중에는 마법(Magic)이라는 이름의 언어가 적어도 세 개는 있었다.
내가 1970년에 동유럽을 방문했을 때, 사람들이 나를 프로그래밍 언어의 왕이라고 부르는 것을 듣고 충격을 받았다(내 자신의 정체성을 의심하게 될 정도로). 그래서 요즘에는 그간의 죄를 회개하며 언어 설계에 대해 훈수 두는 일을 최대한 자제하고 있지만, 그리 쉽지가 않다. 그러면서 깨달은 것이 하나 있는데, 아마도 이것이 프로그래밍 심리학에서 가장 중요한 원칙이라는 생각이 든다.
모든 프로그래머는 메타언어 전문가다.
(후략)