원문: http://www.paulgraham.com/pypar.html[1]
번역:
2011년 1월 - 최초 번역
최근에 한 강연에서 내가 했던 말이 많은 사람을 화나게 한 것 같다. 그 말은 자바(Java)보다 파이썬(Python) 프로젝트를 하는 것이 더 똑똑한 프로그래머를 모을 수 있을 것이라는 내용이었다.
자바 프로그래머가 바보라고 말하려던 것은 아니다. 파이썬 프로그래머가 똑똑한 사람이라는 뜻이다. 새로운 프로그래밍 언어를 배우려면 많은 노력이 필요하다. 이 사람들은 직장을 얻으려고 파이썬을 배우는 것이 아니다. 이들은 진정으로 프로그래밍을 좋아하고 이미 알고 있는 언어에 만족하지 못하기 때문에 파이썬을 배운다.
이렇게 하는 것은 정확히 회사가 고용하길 원하는 종류의 프로그래머로 만들어 준다. 그러므로 이것을, 더 좋은 이름이 생각나지 않으니, 파이썬 역설이라고 해 두자. 만일 어떤 회사가 소프트웨어를 개발하면서 비교적 난해한 언어를 선택했다면, 더 나은 프로그래머를 고용할 수 있게 될 것이다. 그 언어를 배우는 것을 고려하기에 충분한 사람들만 끌어들일 것이기 때문이다. 그리고, 프로그래머에게 이 역설은 좀 더 명확하다. 만일 좋은 직업을 얻고 싶다면, 사람들이 직업을 얻기 위한 목적으로는 거의 배우지 않는 언어를 배워야 한다.
지금까지 이것을 깨달을만큼 영리한 회사의 수는 매우 적었다. 하지만, 이제는 선택이 가능할 정도이다. 이런 회사는 정확히 프로그래머가 일하고 싶어할 그런 직장이다. 예를 들면, 구글(Google)인데, 구글은 자바 프로그래머를 구인할 때도, 파이썬 경력을 요구했다.
내 친구 중에 널리 쓰이는 언어는 거의 모두 알고 있는 사람이 있는데, 그는 대부분의 프로젝트에 파이썬을 사용한다. 주된 이유는 소스 코드를 표현하는 방식이 좋아서라고 한다. 다른 언어를 제치고 하나의 언어를 선택한 이유로는 쓸데없게 들릴지도 모르겠다. 하지만, 생각하는 것만큼 그렇게 쓸데없지는 않다. 프로그램을 만들 때는 코드를 작성하는 시간보다 더 많은 시간을 코드를 읽는 데 사용한다. 마치 조각가가 찰흙 덩이를 다루는 것과 비슷한 방식으로 소스 코드 덩이를 밀어 넣는다. 그러므로, 소스 코드가 추악해지는 언어는 깨끗한 것에 집착하는(exacting) 프로그래머를 미치게 한다.
추악한 소스 코드에 대한 언급에서, 사람들은 당연하게도 펄(Perl)을 떠올릴 것이다. 하지만, 펄의 표면적인 추악함이 내가 의미하는 바는 아니다. 진짜 추악한 것은 가혹하게 보이는 문법(syntax)이 아니라, 잘못된 개념 위에서 프로그램을 완성해야 한다는 점이다. 펄은 만화 캐릭터가 욕하는 모습처럼 보이지만[2], 개념적으로는 파이썬을 능가하는 점도 있다.
어쨌든, 지금까지는 그렇다. 물론 언어는 변한다. 하지만, 루비(Ruby), 아이콘(Icon), 조이(Joy), 제이(J), 리스프(Lisp), 스몰토크(Smalltalk)와 같은 언어는 정말로 프로그래밍에 관심있는 사람들이 만들었고, 사용한다는 사실은 변하지 않는다.
[1] (역주) 저자는 다른 언어로 번역해서 공개하는 걸 허용하고 있습니다. http://www.paulgraham.com/gfaq.html
[2] (역주) 소스 코드를 보고 있으면, 마치 펄이 나에게 RTFM(Read The Fucking Manual, 매뉴얼 좀 읽어)이라고 하는 것 같다는 이야기 입니다(일본어 번역판을 참고했음, http://practical-scheme.net/trans/pypar-j.html).