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


























