如果對科技和軟件行業(yè)的歷史有一些了解,你大概會知道一些有趣的事情。在軟件銷售領域,除了程序員的開發(fā)工具,其他行業(yè)的專業(yè)軟件價格都高的驚人。幾十年前,開發(fā)工具還是一門好生意,利潤很高,幾家提供開發(fā)工具的軟件公司經(jīng)過了好幾場大戰(zhàn),最終過去那些顯赫的名字,逐漸消失了。微軟雖然某種意義是那場戰(zhàn)爭的勝利者,但也不再和過去一樣能從開發(fā)工具獲取不錯的利潤。同時,在圖像處理領域,Adobe的套件不僅始終處于壟斷地位,價格也沒什么變化。Adobe除了增加一些小功能,讓軟件更加好用,這些年最大的改進應該是從軟件銷售轉移到云服務,這可不單單為了用戶使用方便,云服務可以讓那些買一套軟件用10年再也不升級的用戶持續(xù)付費。算下來10年使用成本反而還增加了。AutoCAD有什么變化嗎?3D solid有什么變化嗎?都差不多,變化不大,但繼續(xù)安享高額利潤。 曾經(jīng)的軟件行業(yè)利潤最大的那些公司,只有為程序員服務的那些被殺死了。程序開發(fā)領域,這些年的變化可謂翻天覆地,程序員們構建出來的項目規(guī)模已經(jīng)千百倍于那個年代,復雜性,工具的先進性都不可同日而語。但這些工具和軟件,反而變成免費或者非常便宜了。為什么不同行業(yè)差距這么大?因為程序員們幾乎在自己需要用到的所有領域,都以開源的方式創(chuàng)造出了商業(yè)軟件的代替品。在這個領域工作的人們有了選擇權,這些開源軟件起初并不好用,但是它確實能用,又免費,還有代碼可以自己改,對于很多情況,雖然簡陋,但這也是足夠了。在這個領域的商業(yè)公司受到了這些免費產(chǎn)品的競爭,利潤率自然下降,其他不能自己制造工具的行業(yè),比如設計師們用的那些軟件,受到的挑戰(zhàn)就小的多,仍然被大公司主導著產(chǎn)品開發(fā)進程。 和其他行業(yè)不同,程序員工作的目的之一就是提高自動化水平,甚至取代自己的工作。換句話說,大概沒有什么專業(yè)人員和程序員這樣,以砸自己飯碗為工作目標。人們通常會注意到,數(shù)字化和計算機的發(fā)展慢慢取代/改變了很多行業(yè),殺死了很多職業(yè),但一般不會注意到,程序員殺死最多的職業(yè)其實是自己這個職業(yè)。一代又一代更好的工具和架構被發(fā)明出來,通常就代表靠上一代工具生存的那些職位消失了,如果停止學習,在這個行業(yè)里面很難有人能5年之后還能繼續(xù)工作。當然,還是有很少一部分人能用一個技能維持很多年的工作,但他們通常聚集在其他行業(yè)中,比如為金融保險或者企業(yè)信息系統(tǒng)提供服務和支持的職位。在真正純粹的IT技術和互聯(lián)網(wǎng)產(chǎn)業(yè),技術的更新?lián)Q代速度相當快。 在其他工程領域,工程師們當然也創(chuàng)造自己使用的工具,無論是機械還是電子,很多工具和方法也是工程師發(fā)明的。但是受現(xiàn)實世界資源限制,他們創(chuàng)造工具和推廣標準的速度不可能那么快,創(chuàng)造工具的成本也過高,很難和程序員這樣,把制造工具和改善效率做為一種日常活動。在軟件行業(yè),有極大比例的程序員是同時制造產(chǎn)品和工具的?;ヂ?lián)網(wǎng)普及到今天這個狀態(tài)之后,在新一代程序員里面要找到完全沒為開源項目貢獻過任何代碼的人也不太容易了。大家多少都會在工作之余或多或少貢獻點什么。像程序員這樣,一個職業(yè)中大部分勞動者都在制造工具的情況,其他行業(yè)是很少見的。 工程師和科學家不同,他們可能并不能創(chuàng)造歷史上的關鍵節(jié)點,但是可以在有限的資源內(nèi)作出最好的實現(xiàn)。軟件領域就是這樣,較低的工具成本讓更多人容易進入這個領域,從而有了更加富裕的勞動力和創(chuàng)造力,讓工具和基礎設施的完善變得更加容易和快速,整個行業(yè)是滾動向上發(fā)展的。等行業(yè)水平發(fā)展到一定程度之后,它就成了完整的體系,這時候這些工具的使用范圍和影響力就不僅僅限于計算機行業(yè)了。我們現(xiàn)在就能看到這種現(xiàn)象,幾乎所有行業(yè)都在依賴類似的基礎工具。一個比較直觀的典型例子就是scipy, 它是用Python語言實現(xiàn)的科學計算包,現(xiàn)在幾乎所有理工科的研究工作都會用到它。別管什么專業(yè)的研究生,要做數(shù)據(jù)研究,就得會寫點Python,因為要使用它做計算。但scipy這個在科學研究領域已經(jīng)是必須使用的東西,并不是科學家開發(fā)出來的,而是程序員Jim Hugunin發(fā)起的,在最開始的時候,它還很不完善,性能也不好,但至少是可以用的,隨后越來越多的工程師,大學教授等等加入項目,逐漸完善它,最后變成今天比較完善的狀態(tài)。 除了某個開源程序包的影響,現(xiàn)在幾乎所有學科都面臨做大規(guī)模的計算現(xiàn)實問題。這時候他們會和計算機行業(yè)使用同樣的系統(tǒng)基礎,因為再也沒有更好的廉價解決方案了,甚至不廉價的解決方案也很難有。既然用了這些解決方案,因此衍生出來的運維,部署,并行化,監(jiān)控……一系列的現(xiàn)實問題,自然也就都和計算機行業(yè)完全一致。無論是架構還是腳本,或者是現(xiàn)在使用云計算服務以及容器,這些被軟件工程師們創(chuàng)造出來的架構方式和工作方式,最終也被其他行業(yè)采用了。 程序員從對自己工作效率不滿意開始,逐漸創(chuàng)造工具和方法論,最終形成一套完整的體系可以被其他行業(yè)使用。大部分人在做這些事情的時候,并沒有改變其他行業(yè)的野心,只是為了解決自己的問題。但這個行業(yè)比較良好的工程意識逐漸讓這些解決自己問題的思路和工作成果可以被抽象出來,推廣開,影響更多的人。也提高了其他行業(yè)的效率和作出更重要成果的機會。這些都是軟件行業(yè)給世界的禮物。 甚至程序員直接使用的工具,比如編輯器或者版本管理工具,對其他行業(yè)也是有很大幫助的??赡苓@些工具的思路和界面對于非程序員還不夠友好,但是花一點時間學習,就會感覺到他們的優(yōu)勢。比如,我一直四處勸說文字工作者嘗試使用github,尤其是多人協(xié)作的項目,這可以讓他們協(xié)作效率大大提高。遺憾的是至今說服成果還不大,可能對于他們開始學習難度還是很大,還需要更多的輔助工具和教學方法。不過我相信這些工具早晚會變得更加普及。 現(xiàn)在我們所生活的這個世界,間接被程序員成果影響的行業(yè)太多了,絕不僅僅是手機上看到的這一點點純互聯(lián)網(wǎng)領域的變化。從醫(yī)療到制藥到材料,金融和經(jīng)濟以及社會,幾乎所有領域都需要靠計算來決策,實現(xiàn)計算的背后靠的仍然是程序員創(chuàng)造的這些基礎工具。 人們應該感謝這些總想砸了自己飯碗的家伙們。 廣告分隔線 對程序員這個行業(yè)有興趣,想學點代碼?或者已經(jīng)是程序員了,還想學更多技能和提高?來自硅谷的前沿技術學習平臺優(yōu)達學城(Udacity)是個非常好的選擇,大量優(yōu)秀的課程是免費的。 優(yōu)達學城正在進行程序員感謝月活動,持續(xù)給程序員們免費送他們最喜歡的禮物,比如 AWS 服務器代金券,一直持續(xù)到本周末。分享下面這個程序員感謝月的活動給你身邊的程序員吧。 |
|