Last active
June 3, 2025 05:26
-
-
Save joshcho/92678239cb98c65364257393b94b6de6 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Python 역설 | |
2004.08 | |
최근 제가 강연에서 한 말이 청중들을 많이 놀라게 했더군요: ‘Java보다 Python을 선택하면 더 | |
똑똑한 프로그래머를 찾을 수 있습니다’ | |
물론 제 말은 Java 프로그래머들이 실력이 떨어진다는 뜻이 아닙니다. 오히려 Python | |
프로그래머들이 뛰어나다는 말이죠. 새로운 언어를 배운다는 것은 많은 노력을 요하는 일입니다. | |
대부분의 프로그래머들이 Python을 굳이 배우는 이유는 직장을 얻기 위해서가 아니라 진정으로 | |
프로그래밍을 좋아하고 기존에 알고 있던 언어들에 만족하지 않았기 때문입니다. | |
이런 프로그래머들이 바로 회사들이 원하는 인재상입니다. 그래서 (다른 더 좋은 이름이 떠오르지 | |
않기에) 이 현상을 Python 역설이라고 칭하겠습니다: 어떤 회사가 비주류 언어를 선택한다면 | |
그만큼 더 뛰어난 프로그래머들을 고용할 수 있다는 것이죠. 그 이유는 그분들이 비주류 언어를 | |
배울 만큼 업을 진지하게 여기는 사람들이기 때문입니다. 그리고 프로그래머들에게 이 역설이 더욱 | |
두드러지게 나타납니다: 진짜 배워야 하는 언어는 취업을 위해서만 사용되는 언어가 아닌 것입니다. | |
소수의 회사들만 이 사실을 알고 있는 듯합니다. 하지만 여기서도 선택 과정이 있습니다: 이런 | |
소수의 회사들이야말로 뛰어난 프로그래머들이 선택하고 싶은 회사들일 겁니다. Google이 좋은 | |
예입니다. Google은 Java 구인공고를 할 때 Python 경험도 물어봅니다. | |
제 친구는 상용되는 거의 대부분의 언어들을 섭렵했는데, 그 친구는 어떤 프로젝트를 진행하든 | |
Python을 사용합니다. 그의 개인적인 이유는 소스 코드의 모양이 마음에 들어서라고 합니다. | |
프로그래밍 언어를 고르는 이유에 모양이 웬 말이냐 하실 수 있지만, 또 그렇게 말이 안 되지는 | |
않습니다. 프로그래밍할 때 코드를 쓰는 것보다 읽는 데 더 많은 시간을 씁니다. 프로그래머들은 | |
소스 코드의 “모양”을 이리저리 움직이죠, 마치 조각가가 점토의 “모양”을 이리저리 움직이듯이. | |
그러므로 아름답지 않은 “모양”을 만들어내는 언어는 수준 높은 프로그래머에게 짜증만 | |
불러일으킬 것입니다. 마치 혹이 울퉁불퉁 나 있는 점토가 조각가에게 눈엣가시인 것처럼 | |
말이죠. | |
아름답지 않은 소스 코드를 생각하신다면 대부분은 Perl을 생각하실 겁니다. 하지만 제가 | |
여기서 지칭하는 것은 Perl의 피상적인 못생김이 아닙니다. 진짜 못생김은 읽기 어려운 | |
syntax가 아니라 맞지 않는 개념들로 프로그램을 구축해 나가야 할 때입니다. Perl의 코드 | |
생김새를 보면 만화 캐릭터가 욕을 하는 것처럼 보일 수 있지만, 어떤 경우에는 Python보다 | |
개념적으로 우수한 경우도 있습니다. | |
여태까진 말이죠. 이 두 언어들도 물론 움직이는 과녁들입니다. 하지만 이 두 언어들은 Ruby와 | |
마찬가지로 (Icon, Joy, 그리고 J, 그리고 Lisp, 그리고 Smalltalk도 포함) 프로그래밍을 정말 | |
진지하게 대하는 사람들이 만들었고 사용한다는 것입니다. 그리고 이런 사람들이 대부분 뛰어난 | |
프로그래머들이죠. | |
원문: https://www.paulgraham.com/pypar.html |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment