我們應(yīng)該如何對待技術(shù)信仰?
程序員的榮耀
- 編程語言戰(zhàn)爭:認(rèn)為自己所用的語言是最好的。
- 編輯器的圣戰(zhàn):Vim和Emacs黨派不斷向?qū)Ψ桨l(fā)起攻擊。
- 操作系統(tǒng)之亂:Windows、Linux和Mac OS陣營之間的不斷爭論。
- …
看到這個(gè)列表,你一定深有感觸。嗯,程序員榮耀
(額,這是我自己起的名Programmers' Glory
)已然把網(wǎng)絡(luò)上的任何地方當(dāng)成了自己的戰(zhàn)場。
記得之前看過一篇博文叫做How Religion Destroys Programmers,翻譯過來就是“信仰是如何毀掉程序員的”。
文中列舉了眾多被垢病的程序員的臭毛病和它們所帶來的巨大危害。文中提到,這種自我強(qiáng)加的信仰導(dǎo)致的問題是,它讓我們看不到真相,不去嘗試別的技術(shù)。代碼偏執(zhí)為擁有Programmers' Glory
的人關(guān)上了很多扇門。
最后作者總結(jié)說,相對于無腦崇拜某個(gè)我湊巧選擇的技術(shù),廣泛地理解一系列技術(shù)和編程語言可以使我變得更有價(jià)值。
說的很對!
當(dāng)激情上升到信仰的時(shí)候,便引發(fā)了不斷的語言戰(zhàn)爭、編輯器之戰(zhàn)。而當(dāng)你沉迷其中,斗得不亦樂乎直至筋疲力竭之時(shí),它不知不覺已經(jīng)限制了你潛力挖掘的可能性。簡單的說,就是你已經(jīng)給自己的人生設(shè)了一個(gè)個(gè)的限制。
《黑客與畫家》中,Paul Graham對語言戰(zhàn)爭
描述得很準(zhǔn)確,
“如果你長期使用某種語言,你就會(huì)慢慢按照這種語言的思維模式進(jìn)行思考。所以,后來當(dāng)你遇到其他任何一種有重大差異的語言,即使那種語言本身并沒有任何不對的地方,你也會(huì)覺得它極其難用。缺乏經(jīng)驗(yàn)的程序員對于各種語言優(yōu)缺點(diǎn)的判斷經(jīng)常被這種心態(tài)誤導(dǎo)。”
當(dāng)你信仰過程式程序設(shè)計(jì)時(shí),你已經(jīng)拋棄了面向?qū)ο笏枷氲木A;客觀來講,目前還沒有一門語言是完美的,所以當(dāng)你全盤接受一門語言的時(shí)候,你同時(shí)也擁抱了它的糟粕,卻還自認(rèn)為這是它的feature;當(dāng)你發(fā)誓這輩子只用Vim再也不碰Emacs的時(shí)候,就決定了你永遠(yuǎn)也不會(huì)理解Emacs的使用者的思考邏輯;當(dāng)你決定誓死效忠Windows、Linux或是Mac OS X其中之一時(shí),你的思維方式、操作習(xí)慣也將被它所固化(我一直認(rèn)為接觸一種操作系統(tǒng)就會(huì)多一種思維方式)。
說到Mac OS X,想起來前幾天池建強(qiáng)在微信推送了一篇文章叫《不要成為果粉》。對于任何事物,成為其粉絲都是很危險(xiǎn)的。成為了某個(gè)工具的粉絲,這只是好聽點(diǎn)兒的話,實(shí)質(zhì)則是你成為了工具的奴隸;成為了某項(xiàng)技術(shù)的粉絲,你就受限于該技術(shù),不光是潛力不能自由發(fā)揮,而且思維也被該技術(shù)禁錮;成為某個(gè)公司的粉絲,你會(huì)傾向于使用該公司所有的產(chǎn)品,學(xué)習(xí)該公司主導(dǎo)的技術(shù)。至于利害,仁者見仁。
對技術(shù)的選擇持封閉態(tài)度最后只會(huì)傷害你自己并限制你作為一個(gè)開發(fā)者的個(gè)人成長,甚至可以說限制了你這一輩子的能力。
所以,大多數(shù)人都會(huì)建議,不要把熱情變成信仰。
信仰的力量
那么是不是說信仰沒有一點(diǎn)好處呢?當(dāng)然不是。
其實(shí)信仰無處不在。信仰是自然產(chǎn)生,缺少信仰的社會(huì)不是健康的社會(huì)。在生活中,有各種宗教信仰。再細(xì)一點(diǎn)說,有的人喜歡吃蘿卜,有的人卻偏愛吃白菜;有的人喜歡喝橙汁,有的人一輩子只喝白開水。不要嘗試去改變這些人,因?yàn)槟銢]辦法改變。
而程序員也是人,編程也像生活一樣,所以程序員擁有技術(shù)信仰很正常。
程序員的信仰有什么好處?
- 信仰會(huì)使你在堅(jiān)持一件事上擁有不斷的動(dòng)力。
- 信仰會(huì)讓你擁有對完美的偏執(zhí)。
- 沒有信仰,整天坐在那敲代碼,這么枯燥誰能堅(jiān)持得下去??。。?!
那么,到底應(yīng)該怎么對待各種技術(shù)信仰呢?
我與我的信仰
其實(shí)我并不贊成消除自己的信仰。
雖然我最愛用Vim,但也一直保留著Emacs。雖然我喜歡Chrome多一些,但Firefox也是我的必備軟件。雖然在學(xué)Objective-C和iOS編程,但Android開發(fā)也嘗試過,Go語言也有所掌握,因?yàn)槲彝瑫r(shí)是Google和Apple的粉絲:-P。
曾經(jīng)有人語氣嚴(yán)肅地告訴我,像是在發(fā)誓,我這輩子都不會(huì)用Mac。好吧,多謝,世界上有多了個(gè)意氣用事的無知蠢蛋,而我又比一個(gè)人多掌握了些能力。
大神王垠,大學(xué)時(shí)瘋狂地吹捧Linux、Unix,現(xiàn)在不也浪子回頭
了?!其實(shí)讀他現(xiàn)在的文章也能感到他被信仰沖擊后留下的后遺癥。
說了這么多,我的觀點(diǎn)就是,
- 要學(xué)會(huì)和別的信仰的共處,而不是消除信仰本身。
- 當(dāng)你發(fā)現(xiàn)自己有了技術(shù)信仰時(shí),不要嘗試去磨滅它,而是去利用它!利用它帶給自己的動(dòng)力與激情!
對于那些陷入語言戰(zhàn)爭的孩子們,別再糾結(jié)到底學(xué)不學(xué)Go或是其他語言了:C++作者Bjarne Stroustrup說過,編程語言有兩種,一種是充滿缺陷的,一種是沒用的。
對于那些忙于編輯器圣戰(zhàn)的孩子們,到底是用Vim還是Emacs?:別忘了,世界上最簡單的解決問題的工具,硬幣。
對于那些還在罵Windows的家伙:王垠大神都覺悟了,你還在想啥?
最后再看一個(gè)關(guān)于信仰的有趣的漫畫(圖片來自西喬的博客)。
原文鏈接:http://jackiekuo.com/think/2014/05/11/about-programmers-glory/