생각의 전환점
나도 오랫동안 이런 사실을 받아들이지 못했다. 왜 맥보다 윈도우즈가 뛰어난지, 왜 C# 등의 정적 언어가 펄이나 루비 같은 동적 언어보다 뛰어난지 목소리를 높이곤 했다. 이제 와 말하기 창피하지만 나와 생각이 다른 개발자를 비난하기도 했다. 어떻게 감히 기술에 대해 나와 다른 생각을 할 수 있지?
하지만 자바 프로젝트 팀을 이끌어본 뒤에 내 생각이 완전히 바뀌었다. 처음에는 이 팀을 맡아야 할지 많이 망설였다. 그때까지 나는 C#에 주력하는 .NET 개발자였다. 아, 물론 .NET이 등장하기 전에는 C++를 신봉했다. 자바로 작업한다는 건 생각만 해도 싫었다. 자바는 우아한 C#과 비교도 할 수 없는 저급한 언어였다. 람다 식도 쓰지 못하는 자바 코드를 어찌 즐겨 쓸 수 있겠는가?*
그러나 결국 그 일을 맡기로 했다. 거절하기 힘든 좋은 기회였고 계약직이니까 1년 정도는 참을 수 있으리라 생각했다. 그리고 그 결정은 내 경력에 있어 신의 한 수에 가까웠다. 그렇게 싫어하던 언어였는데 막상 작업해보니 자바라는 언어가 그리 나쁘지만은 않았다. 왜 C#보다 자바를 더 좋아하는지 이해할 수 있게 되었고 동시에 모든 기술을 새로운 관점에서 바라보게 되었다.
자바 프로젝트를 진행한 몇 년 동안 그전에 배웠던 것보다 더 많은 것을 배웠다. 그때까지는 가지고 있는 도구 몇 가지만 반복적으로 사용했는데 갑자기 모든 문제를 해결할, 새로운 도구가 가득 들어 있는 공구함을 얻은 기분이었다.
그 후 자바에 그랬듯 다른 프로그래밍 언어에도 마음을 열었다. 심지어 동적 언어까지 받아들이기로 했다. 그렇게 각각의 언어를 다루며 배운 내용 덕분에 더 나은 프로그래머가 될 수 있었다. 운영체제, 프레임워크에 대한 고집도 더는 내세우지 않았고, 판단하기 전에 일단 사용해보기로 했다. 이때의 경험이 아니었다면 이 책도 쓰지 못했을 것이다. 어쩌면 『왜 C#이 최고이고 나머지는 모두 형편없는가』라는 책을 썼을지도 모른다.
* 당시 저자의 생각이 그랬다는 뜻이다. 2014년 발표된 Java 8은 람다 표현식(lambda expression)을 지원한다.