很多年來始終有一種聲音:編碼自身會逐漸消亡,軟件開發會越來越像一種組裝工作。
也就是說,程序員會越來越像IT工程師,他們很少自己從頭做什么,而是靠搭配來達成各種目標。
我身邊就有持這種觀點的人。
而在《代碼整潔之道》一書中,Robert C Martin在開篇處加了這樣一段文字:
有人也許會以為,關於代碼的書將有點落后於時代---代碼不再是問題;我們應當關注的是模型和需求。
確實有人說過我們正在臨近代碼的終結點。很快,代碼就會自動產生出來,不需要再要人工編碼。
.... ...
這段文字告訴我們編碼會逐漸消亡這種觀點即使在國外也有一定的市場。
假使說這是真的,那程序員就必然是一個會逐漸消亡的職業。
現在的關鍵問題是,這究竟是不是真的?
為回答這一問題,需要對軟件開發內在的根本特質做一點考察。
只要靜下心來想一想,我們就會發現,持有上述觀點的人並非無的放矢,也還是有一定根據的。
在今天開發任何一款軟件的時候,很少會從頭開始開發。
大多時候會選定特定的框架:開發PC客戶端程序,可能是.net或MFC,開發網站可能要選LAMP,大數據處理則可能要用Hadoop等。
與此同時商用的各種組件或庫也是越來越豐富:圖形處理的,出圖的,並行運算的等等。
最差的也還可以選着重用很多現有的代碼:從codeproject或開源上借鑒合適的代碼片段。
上述這些現實確實使軟件開發具備越來越多的“組裝”性質。
這意味着程序員並不能只關注自己可以干什么,還要關注別人干了什么,自己能不能拿過來用。
從這個角度看,如果上述趨勢不斷強化,編碼似乎真的是要逐漸消亡了。
但其實這是錯的。
這種觀點低估了世界變化的頻度,以及軟件在應對變化過程中所扮演的角色。
這事情其實並不復雜。
對各種已有問題,我們總是可以抽象出特定的模塊來處理他們。
如果只是重復的處理已有的問題,那么組裝就是本質特征,編碼確實會消亡。
但反過來想如果處理新問題是主流和核心,那么編碼就是本質,組裝就是一種輔助。
在商務世界里,往往是只有領先一步,才能搶占先機,所以在有軟件產品的軟件公司中編碼必然永遠是主流。
好比說A公司可以用Hadoop,B公司也可以用Hadoop,但如果沒有自己附加上去的東西,那么兩個公司就會同質化,通常不會有誰能生存的很好。
即使誰好了,也馬上就會有C,D,E,F來湊熱鬧。而能造成差異,造成獨有附加值的則只能是創新加編碼。
但在目標是開發“能用就行”軟件的組織中,“組裝”占上風的情形估計也是時有發生。
沒有具體考察過,但我個人很懷疑電商類網站,開發內部使用軟件的團隊,很可能會是這類情形。
--------------------------------------------------------------
理想流 + 軟件 = 《完美軟件開發:方法與邏輯》
理想流 + 人生 = ??
理想流 + 管理 = ??
理想流 = 以概念和邏輯推演本質,追求真理。
