2011/05/22

The Python Paradox

This is a zh-tw translation of The Python Paradox by Paul Graham.

在某次演講中,我的話語惹毛不少人,那段話是這樣說的 -「使用 Python 的專案,會比 Java 的專案,容易吸引到更聰明的程式人員。」

我可沒說 Java 程式員是笨的,那句話的焦點在於 Python 程式員是聰明的。學習一個新的程式語言,需要花費不少工夫,因此,人們不會為了混口飯吃,而去學 Python,那些學 Python 的程式員,是基於對編程的熱愛,而且他們對已知的語言都感到不滿意。

這類的程式員,應該是公司想要雇用的。由於找不到好的形容詞,我姑且稱這種現象是 Python 的弔詭 - 如果公司的軟體專案使用密教式的語言來開發,他們會雇用到較好的程式員,因為這樣的條件會吸引那些願意學這類語言的好手。對程式人員而言,下列的說法,更是無庸置疑:如果你想要找到好工作,該學的語言,必然不是那些只能混口飯吃的語言。

迄今,只有很少的公司夠聰明,能明白這樣的道理,不過,還有另一種演化趨勢,來自於那些最受程式員喜愛的公司,例如 Google,當他們要找 Java 工程師時,也會要求同時具備 Python 經驗。

我有個朋友,熟知所有廣被使用的語言,他手邊的專案,多數就用 Python 開發,而選用 Python 的最大原因,是程式碼看起來舒服。比較程式語言的選用條件時,這樣的理由聽起來可能好笑,但搭配下列的情境,這句話就不像鬧著玩了:動手編程時,你會花很多時間在讀程式碼,而不是寫程式碼。編修程式碼的過程,就像雕塑師在作品上捏塑泥巴的過程,如果語言讓程式碼變醜,嚴謹的程式員看了可會抓狂,就像糊成一團的泥巴,會讓雕塑師無法忍受一樣。

提到醜的程式碼,人們很容易想到 Perl,不過,Perl 表面上的醜,或是生硬語法所帶來的醜,並不是我想講的,錯誤概念所造成的醜,才是真的讓人無法接受的事。有時候 Perl 程式碼看起來像卡通人物幹譙時的一串符號,但有些情況下,Perl 在概念上比 Python 來得優異。

話說回來,這兩個語言仍然各自演化中,和 Ruby (Icon, Joy, J, Lisp, Smalltalk) 一樣,投身它們的程式員,都是熱愛編程的族群,而且是更有機會搞好編程的一群。

No comments: