해커와 화가, 그리고 …

by SL

이 책을 읽다보면 ‘참 이상적인 얘기만 하는구나’ 라는 느낌을 받을 수 있다. 만약 저자가 컴퓨터 사이언스의 박사 학위를 갖고 있지 않았다면, 또 직접 회사를 설립하여 (화려한!) 성공을 거둔 벤쳐사업가가 아니었다면, 그의 말은 그저 허무맹랑한 이야기로 그쳤을지도 모를 일이다. 하지만 그는 자신의 방식을 통해 성곰함으로써 스스로의 말을 증명해내었기에 그의 말에서 느껴지는 무게는 남다르다.

조금 엉뚱하지만, 이쯤 해서 떠올리게 되는 인물이 있다. 바로 “조엘 온 소프트웨어” 라는 책으로 유명한 조엘 스폴스키다. 그는 포그크릭 소프트웨어라는 회사를 운영하고 있는데, 스스로의 회사를 만들었다는 점에서 그레이엄과 닮아 있기도 하다. 하지만 두 사람의 프로그래밍에 대한 견해는 상당히 대조적이다.

추상화의 아름다움을 예찬하는 그레이엄에 비해, 조엘은 추상화의 구멍을 경계한다. 그레이엄은 점진적인 개선보다는 규칙적인 프로젝트의 새로운 시작을 권하지만, 조엘은 코드를 뒤엎고 완전히 처음부터 새로 작성하는 것을 ‘절대 하지 말아야 하는 일’이라고 힘주어 말한다. 또 그레이엄이 100년 후의 프로그래밍 언어가 갖추어야 할 속성을 호기롭게 예측할 때, 조엘은 러시아 페인트공의 비유를 통해 strcat() 함수의 잠재적인 비효율성을 지적한다.

즉, 조엘이 프로그래밍에 대하여 보다 현실적인 태도를 취하고 있으며, 그의 책 역시 실용적인 많은 조언을 제공하고 있다. 폴 그레이엄의 시원스런 말투와 강한 설득력에 이끌리는 마음 십분 이해하지만, 균형 감각을 유지하기 위해서는 그와는 다른 목소리에도 귀를 기울일 필요가 있다. 이 책의 마지막 장을 덮은 뒤, (Lisp 언어 입문서을 집어들기 전에 :-) “조엘 온 소프트웨어”의 첫장을 펼쳐보기를 권하는 것은 바로 그런 이유에서다.