20年前,最好的程序員是那些能夠把整個程序裝配進(jìn)一個64Kb的.COM文件里的人。那些對Intel 80386掌握最多的人在編程中是偶像般的存在。
那是因為在20年前的計算機(jī)昂貴了而程序員廉價。那是黑客情懷的時代。那個時代已經(jīng)過去了。那種情懷現(xiàn)在已經(jīng)不被贊賞了,因為市場狀況已經(jīng)完全相反了。
現(xiàn)在,計算機(jī)變得便宜而程序員變得昂貴了。當(dāng)下的時代是設(shè)計師情懷的時代,如今我們代碼的可讀性比代碼的性能更為重要。
硬件價格 vs 工資
看這個圖表。這是最近20年來(1994-2014)兩者的對比趨勢圖。第一種曲線呈現(xiàn)下降的趨勢并表明了計算機(jī)內(nèi)存和硬盤儲存器在近20年來變得很便宜。
第二種曲線趨勢演示了在同一時期軟件開發(fā)者工資上漲了多少。精確點(diǎn)來說,大概是第一種的三倍。我沒有找到一個關(guān)于這兩者對比的正式報告,但是可以肯定程序員的工資還會增長,這對任何人來說已經(jīng)不是什么秘密了。對于高級開發(fā)者來說,年薪200,000美元不再只是個夢想。然而在20年前,在周圍的人中,年薪60K美元已經(jīng)是最好的報酬了。我發(fā)現(xiàn)一篇關(guān)于這個話題的非常有趣的文章。
基本上,這意味著在1994年為了開發(fā)一個PHP網(wǎng)站,我們不得不花費(fèi)比現(xiàn)在(2014年)1000倍更多的資金在硬件方面和比現(xiàn)在(2014年)3倍更少的工資給開發(fā)者。然而我們還是在這討論一樣的堆棧技術(shù)。使用一樣配有Apache Http服務(wù)器的Linux機(jī)器。
不同之處,在1994年,如果我們的應(yīng)用因為硬件資源限制出現(xiàn)了性能問題,我們每次添加1G的額外內(nèi)存需要支付35,000美元,而在2014年,我們只需要支付10美元。
在1994年,相對于購買新的硬件,去聘用更多的程序員并要求他們?nèi)?yōu)化代碼或者重構(gòu)代碼的收益更大。在2014年,實際上情況恰恰相反。現(xiàn)在,花錢去把服務(wù)器的規(guī)模擴(kuò)大兩倍比花錢聘用程序員來優(yōu)化軟件更便宜。(特別是當(dāng)服務(wù)器是虛擬云服務(wù)器時)
在1994年最好的工程師擁有“黑客情懷”,而在2014年“設(shè)計師情懷”更受歡迎。
黑客情懷
擁有黑客情懷的人會認(rèn)為這個輸出斐波那契數(shù)列的Java方法是一段“優(yōu)雅的代碼”
我列出了一個優(yōu)秀黑客應(yīng)有的品質(zhì):
能夠使用一種語言中所有的別人知道(和不知道的)特性。
能辨別其他人是黑客還是新手還是黑客寫手
對規(guī)則和標(biāo)準(zhǔn)會感到無聊和厭倦。
不寫單元測試-資歷少時會寫
享受挑戰(zhàn)–他能在那展現(xiàn)它的才華。
喜歡討論多于寫文檔,因為他們覺得這樣更有趣
討厭別人修改他的代碼。
喜歡馬上投入一個項目里。
黑客是一個有才華的人。他想在他編寫的軟件里展現(xiàn)他的才華。他享受編程并且寫代碼主要是為了好玩。我可以這么說,他已經(jīng)和他的代碼結(jié)為伴侶了并且在與代碼離婚后他無法想象以后的幸福生活。代碼所有權(quán)是黑客所關(guān)心的東西–他知道他自己是代碼的所有者。
當(dāng)我問我任意的一個黑客朋友時,“其他人怎樣才能理解這段代碼的是干什么的?”。我?guī)缀蹩偸堑玫酵瑯拥拇鸢?“他們要問我!”(通常是帶著真誠的微笑自豪地說)
設(shè)計師情懷
擁有設(shè)計師情懷的人會重構(gòu)上面的代碼使它便于閱讀。
我認(rèn)為這些品質(zhì)是一個好的設(shè)計師所擁有的:
傾向于使用傳統(tǒng)的編程技術(shù)
假定任何人都是新手并循規(guī)蹈矩地寫代碼
喜歡設(shè)定一些規(guī)則并遵循它們
喜歡寫文檔多于直接討論并且喜歡文檔自動生成多于手寫
把更多的編碼時間花費(fèi)在單元測試上
討厭挑戰(zhàn)和加班工作
喜歡看到它的代碼被修改和重構(gòu)
同時進(jìn)行比較少的項目工作
設(shè)計師是一個優(yōu)秀的團(tuán)隊角色。他對團(tuán)隊的發(fā)展,標(biāo)準(zhǔn),規(guī)則,教育和紀(jì)律的貢獻(xiàn)跟他對源碼的貢獻(xiàn)一樣多。他總是能確保一旦他離開項目他的代碼和想法依然保留下來并運(yùn)行。
對一個好的設(shè)計師來說,最滿意的是能夠看到它的代碼擁有它自己的人生–被修改,被優(yōu)化,被重構(gòu)和最終退休。設(shè)計師把他自己看做是代碼的父母-一旦它足夠年大去走路和說話,它不得不去過自己的生活。
未來
如果你認(rèn)為你自己是一個黑客,我相信這是做出改變的時候了。黑客的時代已經(jīng)成為過去了。
在不久的將來,我們可能甚至不用考慮硬件問題并且在擁有無限大內(nèi)存,CPU頻率和存儲空間的彈性計算平臺上運(yùn)行我們的應(yīng)用程序。我們僅僅需要為資源使用和絕大多數(shù)性能問題付費(fèi),這僅僅是在我們每個月的賬單里添加小額的額外費(fèi)用。我們將不會關(guān)心任何的優(yōu)化問題。
同時,優(yōu)秀的工程師將會變得越來越昂貴,僅僅去檢查下軟件并診斷,一個小時要收費(fèi)500多美元。這就像優(yōu)秀的律師和牙醫(yī)。
這就是為什么,當(dāng)開發(fā)一個新軟件產(chǎn)品時,那些付錢的客戶更關(guān)心的是它的可維護(hù)性。項目贊助人明白他們獲取利潤的最好解決方案是需要一個可讀性、維護(hù)性和自動化最高的項目。
-
程序員
+關(guān)注
關(guān)注
4文章
952瀏覽量
29799
發(fā)布評論請先 登錄
相關(guān)推薦
評論