• 2004년 8월 Paul Graham 의 “The Python Paradox” 라는 제목의 글
  • 최근에 있었던 강연에서 나는 많은 사람들을 화나게하는 말을 했다:
    • 그것은 “Java 프로젝트로 일을 하는 것 보다, Python 프로젝트로 일하는 것이 더 smarter 한 프로그래머들을 get 할 수 있다"고 말한 것이다.
  • “Java 프로그래머들은 바보다” 라는 의미로 말한것이 아니었다.
    • 내 말은 Python 프로그래머들이 smart 하다는 의미였다.
    • 새로운 언어를 배우는 것은 많은 노력이 필요하다.
    • 그리고 사람들은 job 을 얻기위한 목적으로 Python 을 공부하지 않는다.
    • 그들은 순수하게 프로그래밍을 좋아하기 때문에, 그리고 이미 알고 있는 언어에 대한 불만족 때문에 Python 을 공부한다.
  • 회사가 고용해야 하는 프로그래머는 이러한 사람들이다.
    • 더 좋은 이름을 찾지 못해서 나는 이것을 “Python paradox” 라고 부르겠다.
    • Python paradox:
      • 만약 회사가 소프트웨어를 만드는데 비교적 esoteric(소수만 이해할 수 있는, 난해한)한 언어를 사용하면, 그 회사는 더 좋은 프로그래머를 고용할 수 있다.
      • 왜냐하면 그러한 언어를 공부했을 정도로 열정적인 사람만 모이기 때문이다.
    • 그리고 프로그래머에게는 이 역설이 더욱 선명하게 나타난다.
      • 좋은 job 을 얻기 위해 공부해야 하는 언어는, 사람들이 단지 job 을 얻기 위해 공부하는 언어가 아니어야 한다.
  • 이러한 사실을 깨달을 정도로 smart 한 회사는 몇 개 없다.
    • 하지만 이곳에도 선택은 일어나고 있다.
      • 그리고 이러한 것을 아는 회사는 프로그래머가 가장 일하고 싶어하는 회사가 된다.
    • 예를 들어, Google.
    • 그들은 Java programming jobs 의 채용공고를 낼때도 Python 경험을 원한다.
  • 내 친구 중 하나는 넓게 사용되는 대부분의 언어를 거의 모두 알고 있는데, 개인 프로젝트는 모두 Python 을 사용한다.
    • 그가 Python 을 좋아하는 가장 큰 이유는 소스 코드의 모양을 좋아하기 때문이라고 한다.
    • 이것은 언어를 선택하는데 경솔한 이유로 보일지 모른다.
    • 하지만 그렇게 경솔하지도 않다:
      • 당신이 프로그래밍을 할 때, 당신은 대부분의 시간을 코드 작성 보다 코드 읽는데 쓴다.
    • 당신은 조각가가 clay 의 blobs 을 push 하는 것 처럼, 소스코드의 blobs 를 push 한다.
    • 그래서 조각가가 clay full of lumps 를 질색하는 것 처럼, ugly 한 소스코드를 만드는 언어는 exacting 한 프로그래머를 미치게한다.
  • ugly 한 소스코드 언급을 보고 사람들은 Perl 을 생각할 것이다.
    • 하지만 Perl 의 외견상의 ugliness 는 내가 말하는 그 의미가 아니다.
    • Real ugliness 는 거칠어 보이는 문법(harsh-looking syntax)이 아니라, 잘못된 개념으로 프로그램을 build 해야함에 있다.
    • Perl 은 만화캐릭터가 욕을 하는 것 처럼 보이지만($!@#%!!), 개념적으로 Python 보다 더 나은 부분이 있다.
  • 아직까진 그렇단 얘기다.
    • 두 언어 모두 움직이고 있다.
    • 중요한 것은 Python, Perl, Ruby (and Icon, and Joy, and J, and Lisp, and Smalltalk) 모두 프로그래밍을 정말 좋아하는 사람들이 만들었고, 사용되고 있다는 점이다.
    • 그리고 그러한 사람들이 더 잘 하는 경향이 있다는 점이다.