你最喜愛的編程語言不夠好
我的《Python is important》這篇博客引來如此多的評論,讓我頗為意外。大多數(shù)的評論是正面的,但同時多少也都帶點不太積極的色彩。我發(fā)現(xiàn),這些評論反映出的一個很突出的問題是,程序員如何看待編程語言:他們?nèi)プ非笸昝赖恼Z言,熱愛它,保護它。為什么如此多的程序員會對他們最喜歡的編程語言如此感性化?試想,其實世上沒有哪種語言能夠完美的把你的腦子里的思想轉變成機器代碼,所有的語言都有一定的局限性——它們都會限制你的思想的發(fā)揮或不能讓機器的充分的施展能力。
我相信,程序員熱烈的去為某種語言編程辯護的行為,其主要的一個原因就是:懶惰。當然,優(yōu)秀的程序員通常是很懶惰的(他們喜歡讓所有的工作都能自動化完成),但我說的這種懶惰是特指的,是非常不好的懶惰——懶得去學習。如果我最愛的語言是最好的,或只要不比其他語言差,我就不需要花時間和精力學習新的語言了。
這種現(xiàn)象主要的問題是,不僅你不可能找到一種完美的語言,而且當你僅習慣于一兩種語言,僅滿足于一兩種語言后,你解決問的思路也就會僅限于這一兩種語言能夠實現(xiàn)的方式——如果你會的這一兩種語言很相似的話,屬于同一種語系,問題就更嚴重了。
當你解決一個問題需要選擇一種語言時,盡一切可能,選擇一種你感覺能最勝任的語言——最強大的,效率最高的,最適宜的,擁有最多程序庫的語言。如果你是一個很認真的程序員,而不是那種隨便搞搞的程序員,你就需要去學習新的語言,你需要拋棄這種認為這種語言比其它語言都好的思想。所有的編程語言都各有利弊,沒有一個是完美的。我們可以說,某種強于其它語言,但沒有一種語言會擅長做任何事情,沒有一種語言會樣樣都好。Python有其自身的問題(我指的不是它的動態(tài)類型),各種Lisp方言也是這樣(我指的不是它們的太多的括弧),Haskell語言也是(人們公認它有很多奇異之處*)。
學習新的語言。學會不要去盲目崇拜某種語言,學會不要去為“你的”語言辯護、反駁所有的批評。如果你覺得還不到火候,讀一讀《計算機程序的構造和解釋(Structure and Interpretation of Computer Programs)》,學習一種Lisp方言——它會讓你看清楚,讓你感受到其它語言的局限性,這種痛苦會讓你成為一名更好的程序員——不論你是什么語言的程序員。
*我是在開玩笑。事實上,Haskell將是我下一種要學習的語言。
英文:Your favourite programming language is not good enough
原文鏈接:http://www.aqee.net/your-favourite-programming-language-is-not-good-enough/
【編輯推薦】