Like an Unix

注:寫于2010-03-14

因?yàn)楣ぷ鞯年P(guān)系,這幾個(gè)月來,一直在用unix做開發(fā)。剛開始的時(shí)候,這對(duì)我來說是件挺困難的事情。作為一個(gè)前windows程序員,工作中如果沒有像VS那樣好用的工具,沒有豐富的菜單可點(diǎn),沒有便捷的快捷鍵可按,那工作便是一個(gè)承受痛苦和煎熬的過程,毫無樂趣可言。一直以來,Windows程序員的思維方式是,任何軟件的開發(fā),都是一項(xiàng)主題嚴(yán)肅,規(guī)模宏大的工作,開發(fā)一個(gè)軟件,和建造一個(gè)大教堂類似。程序員需要不僅需要有虔誠肅穆的心態(tài),同時(shí)還需要有萬丈高樓平地起,不依靠他人來構(gòu)建一磚一瓦的決心。因此,他們在工作中事無巨細(xì),任何代碼都親力親為;喜歡用重量級(jí)的編程語言,能用C++絕不用python。在他們看來,python這些動(dòng)態(tài)語言的語法太輕佻了,某種程度上會(huì)影響他們肅穆端正,追求宏大敘事的那種情緒。

而unix下的軟件開發(fā),則大異其趣。面對(duì)同樣的需求,和windows下決心采用重量級(jí)語言,從頭做起的思維方式不同,unix程序員首先想到的,不是啟動(dòng)他的Visual studio然后創(chuàng)建一個(gè)工程,而是先啟動(dòng)瀏覽器,google一把,看目前是否有比較好的開源方案可用,如果有這樣的方案,那么先把源碼down下來,稍稍修改一下,編譯一把,即可向用戶交差;如果沒有對(duì)應(yīng)的解決方案,那么就退而求其次,考慮為解決這個(gè)需求而需要寫的程序,是否有好的開源模塊可用直接拿來用?以這樣的方法開發(fā)軟件,不像是建造一個(gè)大教堂,更像是首先在集市上采購零件,然后回家自己焊接安裝,拼湊出自己所要東西。

了解到這一點(diǎn)后才明白,原來我一直是懷著一顆windows的心來做unix下的開發(fā),難怪干起活來非常別扭,十分費(fèi)勁。生活的經(jīng)驗(yàn)告訴我們,如果你全身心地投入去做一件事情,但是卻進(jìn)展緩慢,做得辛苦,那肯定是你的思維方式出了問題;那些能夠順利做好某些事情的人,最主要的一點(diǎn),在于他們擁有正確處理這些事情的思維方式。因此,要玩轉(zhuǎn)Unix,首先必須去了解unix大牛的思維方式。

剛好同事老羅有一本TAOUP,于是便借來看了一下。這是一本很有爭議的書。該書的中文譯者把這本書定位為“課外讀物”,并且在譯序中牛皮哄哄地告訴大家:一開始他被這本書的一些“合他胃口的”言論忽悠了,于是下決心翻譯這本書,沒想到譯到中途,發(fā)現(xiàn)原作者ESR是個(gè)美國老憤青,很多言論不敢與之茍同,于是捏著鼻子把它譯完了。翻譯完之后,為免晚節(jié)不保,落下罵名,特地在譯序中把這個(gè)情況向大家說明,至于會(huì)不會(huì)影響銷量就不管啦。

雖然有這么一篇譯序在前,但是這仍然不妨礙我工作時(shí)間啥事不干,呆在自己座位上把這本書看了幾個(gè)星期??戳酥?,對(duì)ESR的觀點(diǎn)深表贊同,并不覺得這家伙是個(gè)美國老憤青,而是覺得ESR在以一種歷史學(xué)家的眼光,站在幾十年前和幾十年后的角度來看待unix。他從幾十年來,unix所經(jīng)歷過的的風(fēng)雨和浮沉中,抽象提取出unix軟件開發(fā)的原則并加以論述,同時(shí)指出unix文化和unix軟件才是IT行業(yè)的大勢所趨。個(gè)人覺得,這是一本值得每個(gè)程序員好好學(xué)習(xí)的好書,而不像譯者所說的,只是本“課外讀物”。那位中文譯者,或者說那些詬病TAOCP的人,他們看unix,是從手頭上的項(xiàng)目出發(fā),思考的是軟件實(shí)作,思考問題的時(shí)間粒度以星期,以月為單位,于是自然看到了現(xiàn)階段unix軟件以及unix社區(qū)開發(fā)方法的不合理之處,認(rèn)為TAOUP的一些觀點(diǎn)是偏激的。當(dāng)然,本書的翻譯質(zhì)量上佳,考慮到譯者是捏著鼻子譯完的,為此不得不佩服這家伙的翻譯水平,以及承受“痛苦”的耐力。

從這本書中,可以很好地看出unix大牛們的思維方式。從技術(shù)層面來看,這些思維方式,比如kiss原則,輕松編程,拿不準(zhǔn)就窮舉等,現(xiàn)在都已經(jīng)得到了包括windows程序員在內(nèi)的各領(lǐng)域程序員的擁護(hù),在軟件開發(fā)中被奉為圭皋。不過unix的魅力并不僅限于此,包含在unix中的那些的思想,具有某種啟迪智慧,揭示未來的力量。

從unix的歷史可以看出,unix并不是某個(gè)規(guī)劃嚴(yán)謹(jǐn)?shù)纳虡I(yè)項(xiàng)目的生產(chǎn)品,而是源自于AT&T實(shí)驗(yàn)室科學(xué)家,在完全自由狀態(tài)下的獨(dú)立創(chuàng)造,然后被一群深受上世紀(jì)60年代嬉皮士文化影響的程序員發(fā)揚(yáng)光大。和商業(yè)軟件不同的是,在開發(fā)unix極其相關(guān)軟件時(shí),注重的不是當(dāng)下用戶的需求,更多地是被程序員內(nèi)心創(chuàng)造美好事物的信念所驅(qū)動(dòng),致力于打造好用,方便的工具,而不是考慮項(xiàng)目成本和進(jìn)度的問題。從unix到GNU到linux,分析unix的整個(gè)發(fā)展歷史,我們可以看到,出于純正目的發(fā)展出來的unix衍生系統(tǒng)或者unix軟件,大多數(shù)都取得了成功,而試圖從商業(yè)層面來控制unix的源碼和發(fā)行,無一例外地失敗了。

在軟件領(lǐng)域產(chǎn)生的開源運(yùn)動(dòng)和unix文化,是整個(gè)商業(yè)化世界的另類。它們沒有嚴(yán)謹(jǐn)?shù)倪\(yùn)作規(guī)則,沒有明確的商業(yè)模式,但是卻創(chuàng)造出了可以和任何商業(yè)軟件媲美的優(yōu)秀軟件,在實(shí)際的生產(chǎn)系統(tǒng)中創(chuàng)造著實(shí)實(shí)在在的價(jià)值。同時(shí),隨著形勢發(fā)展我們可以看到,以u(píng)nix為首的開源軟件在各個(gè)領(lǐng)域都向windows等專有軟件發(fā)起了有力的挑戰(zhàn)。這就不禁讓人聯(lián)想:商業(yè)化生產(chǎn)和運(yùn)作模式,它是人類社會(huì)運(yùn)行的終極手段,抑或只是一個(gè)過渡階段,以后將被更適合符合人性的生產(chǎn)模式所取代?在其他行業(yè),目前還看不到這一點(diǎn),但是在飛速發(fā)展的IT業(yè)界,似乎漸漸有了這種趨勢。

曾經(jīng)有一位大牛描述過他心目中的理想生活:N年之后,人類生產(chǎn)的組織方式不再以公司生產(chǎn)的方式進(jìn)行(這已經(jīng)被證明是效率低下,有違人性的,規(guī)模越大的公司越是如此),而是以產(chǎn)品為中心進(jìn)行組織,在產(chǎn)品生產(chǎn)的各個(gè)環(huán)節(jié)工作的人們,根據(jù)具體貢獻(xiàn)的大小來分配收入。同時(shí)由于互聯(lián)網(wǎng)的發(fā)展,信息不對(duì)稱的情況將被消除,使得收入分配的透明性成為可能。這種生活的好處是,人們可以以遠(yuǎn)比現(xiàn)在公司化模式更松散的方式結(jié)合在一起,從事生產(chǎn),同時(shí)具有更高的效率。到那個(gè)時(shí)候,人們應(yīng)該有更多的,選擇如何生活的自由吧。

Bob Dylan有一首歌叫l(wèi)ike a rolling stone,描述了韶華的易逝,歲月的無常,個(gè)人認(rèn)為這個(gè)比喻挺傳神的。人類社會(huì)的發(fā)展是否也會(huì)like an unix,從生命最美好的沖動(dòng)出發(fā),在歲月的更替中經(jīng)受住商業(yè)大潮的洗禮和實(shí)用主義的考驗(yàn),慢慢強(qiáng)大,最終到達(dá)美好的彼岸?當(dāng)然,在每個(gè)行業(yè)看起來都像是一場惡搞的中國,貌似這個(gè)可能性不大。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容