[책] 브루스 테이트의 세븐 랭귀지
두 번째 도전이었다. 이 전에 이 책을 구매한 후로 이 책을 완독하기 위해 무진장 노력했었다. 하지만 역시나.. 새로운 개념의 언어는 그것을 이해하기까지 너무나 큰 집중력고 연습을 필요로 했다. 지하철에 쭈그리고 앉아서 읽어서 얻을 수 있는 것은 그리 많지 않았다. 그래서 2/3 정도를 읽고는 다음에 다시 도전해야지 하며 접었던 기억이 있다.
그리고 이번. 이번에는 결국 오기로 다 읽어버렸다. 책을 사놓고 한번도 끝까지 읽지 않는다니 나에게 그런 일은 있으면 안되니까. 그렇다고 평상시에 집에서 연습하며 읽기에는 시간이 부족하고.. 결국 그냥 첫번째처럼 읽되 더 집중해서 꼼꼼히 읽어보자 이런 마음가짐으로 다시 이 책을 집어들었다. 결과는? 초반에는 꽤 괜찮았는데 가면 갈수록 흐지부지.. 대충 읽게 되더라. 역시 사람이란 습관에게 이기기 힘든 법이다.
오늘은 아침에 도저히 일어날 수가 없어서 오전반차를 쓰고 2시쯤이 되어서야 준비하고 나섰고, 그래서 책도 오후 2시가 넘어서야 읽기 시작했다. 아침이나 점심이나 지하철 안에서 읽는다는 점은 변하지 않지만..
이 책은 이름 그대로 7가지 언어를 소개하는 책이다. 그 언어들은 모두 제각기 다른 모습으로 다른 패러다임을 가지고 혹은 공유하고 있었는데, 몇가지는 편해 보였고 몇가지는 놀라웠고 몇가지는 이해조차 힘들었다.
언어의 종류는 루비, IO, 프롤로그, 스칼라, 얼랭, 클로저, 하스켈 이렇게 일곱가지, 그리고 소개된 패러다임은 객체지향, 프로토타입, 제약-논리, 함수 프로그래밍 이렇게 네가지이다. 객체지향은 정말로 익숙한 패러다임이고 프로토타입은 루아로 좀 익숙해진 패러다임이었다. 하지만 함수 프로그래밍은 대충 말로만 들었을 뿐 윤곽을 제대로 잡기 힘든 패러다임이었고, 제약-논리 프로그래밍은 정말이지 이런 방식으로도 만들 수 있구나 하고 놀라움을 자아내게 만드는 패러다임이었다.
이 책을 읽으면서 한 가지 패러다임만을 고수하는 언어는 없구나 하고 좀 더 명확하게 확실하게 생각하게 되었다. 패러다임들의 장점을 얽기설기 엮어서 만드는 것이 언어로구나. 어떤 패러다임의 장점을 내가 사용하는 언어에 조금씩 적용하다 보면 내 스펙트럼이 점점 넓어지겠구나 등 생각도 많이 하게 만들고 시야도 넓혀주는 책이었다.
그런 좋은 책임에도 불구하고 나는 결국 이 책의 반절조차 제대로 머릿속에 넣지 못하고 책을 덮어야 했다. 가면 갈수록 새로운 언어에 대한 부담감과 모르는 언어의 문맥을 따라가기가 벅찼다. 역시 흔들리는 지하철에서는 이 책의 내공을 따라가기가 힘들다.
아무튼 책의 개요 정도는 알게 된 셈이니까 어떻게든 도움이 되겠지.. 다시 읽어야겠지..?
재미있었다.