서지정보
서명: 폴리글랏 프로그래밍
저자: 임백준
출판사: 한빛미디어
출간일: 2014년 3월 3일
생각
『폴리글랏 프로그래밍』은 『7가지 동시성 모델』에 이어 읽는 빌린책챌린지 책입니다. 앞선 책의 시리즈를 번역한 저자가 쓰고, 비슷한 표지와 스타일로 꾸민 책이지요. 자바, C#, 스칼라 세 언어, 그러니까 "자바(와 그) 변종" 언어들의 역사와 그 언어들의 발전 과정이 보여주는 패러다임의 변화에 대해 다루는 책입니다.
저는 프로그래머로 거의 일하지 않았으니까 자바를 잘 쓰지는 않았습니다만, 대학에 입학할 때만 되어도 CS101을 자바로 배웠고, 재학중에 CS101용 언어가 전산과 주도로 파이썬으로 바뀌고, 전통적인 public static void main()과 hello world로부터 시작하는 대신 무슨 로봇 에이전트가 격자에서 길을 찾게 만드는 것부터 시작하게 바뀐다는 이야기를 듣고 놀란 기억이 있습니다. 그러니까, 옛날에는 저도 옛날 사람이었던 거지요.
그 전… 어릴 때 컴퓨터학원 등에서 프로그래밍을 배울 때 온갖 "정렬 알고리즘"에 대해서 배웠지요. 이해가 쉬운 삽입정렬 같은 것에서부터, 빠르고 좋은 퀵소트, 하지만 퀵소트는 운이 나쁘면 O(n²) 시간복잡도일 수 있고… 뭐 그랬는데, 이제 대부분의 사람들은 그냥 .sort()를 쓰지요. 학교 다닐 때는 람다 대수가 뭐니 하는 내용에 꽤 겁먹었던 기억인데, 지금은 그냥 .sort((a, b) => a.idx < b.idx) 정도는 눈을 감고 치는 사람이 되어있으니, 돌이켜보면 아득하네요.
한편으로는 이 책에서 말하는 언어에서 "행사 코드"가 없어지는 과정이란, 프로그래머가 '본질'에 집중할 수 있게 언어가 변화하는 것이기도 하지만, 그렇게 본질에 집중할 수 있게 되는 것은 사람이 작성한 의도만으로 충분하고, 그 의도에 맞는 동작을 '언어의 뒷부분'이 프로그래머가 관여하지 않아도 잘 할 수 있도록 발전해왔기 때문이겠죠. 하고 싶은 일이 명확한 것만으로 모든 것이 해결될 수 있었으면, PROLOG가 지금보다는 많이 쓰였을 것 같습니다.(편견 섞인 말입니다.) 결국 기술에 변화에 따라 언어는 변화할 필요성이 있고, 어떤 언어들은 그 성공때문에 변화하기 어렵기도 하겠죠. 하스켈에 있다는 말처럼, '어떤 수를 써서라도 성공을 회피'하는 것이 언어가 시대를 선도하는 데에는 필요한 것 같습니다.
이 책은 언어의 역사를 다루는 책이다보니, 언어에 주요하게 추가된 기능들을 앵커 삼아 언어에 주요하게 기여한 사람들의 이야기를 엮었기 때문에 어렵지 않게 읽히고, 코드를 알아야지 이해되는 내용이 있지만 배경 설명이 모자라지는 않습니다. 재미있게 읽히는 책입니다.
다른 한편으로 드는 생각은, 우리가 사는 시간이 몇십년, 몇백년 전이 되면 후세 사람들에게 오늘날의 프로그래밍 언어등과 관련된 이 많은 논의들은 어떻게 다가갈까요? 우리가 산업혁명을 가능하게 한 기술로 방직기니 방적기니 플라잉 셔틀이니 증기 기관이니 하는 것들을 언급하는 것과 닮아 있을까요? 썬과 오라클, 마이크로소프트와 구글이 일진일퇴하는 모습의 디테일은 얼마나 중요할까요? 어떻게 말하면, 이 이야기들을 제일 잘 즐길 수 있는 사람들은 이 시대를 살아가는 우리들이 아닐까요. 이미 출간된지 10년은 넘은 책입니다만, 그래도 더 늦기 전에 이런 이야기들을 즐겨두는 것이, 이 시대를 아낌없이 즐기는 방법이리라 생각합니다.