揚尼斯定律:程序員開發(fā)效率每6年提高一倍
模仿摩爾定律和Proebsting定律(這個不像是預言,更像是挑唆),我要給出的定律是:程序員的開發(fā)效率每6年提高一倍。
為了證實我這個定律里的數字部分,請注意下面我的發(fā)現。在1972年的《在分解模塊化系統中用到的規(guī)范(On the Criteria to Be Used in Decomposing Systems into
Modules)》這篇經典論文里,作者David Parnas寫道:
KWIC索引系統接受一個有序的多行信息,每行由有序的多個詞組成,每個詞由有序的多個字符組成。每行信息都能通過把第一個詞挪到行尾這樣“循環(huán)變換”。 KWIC索引系統的輸出是每行內容都通過字母順序經過“循環(huán)變換”后的新行。這是一個小系統,如果不考慮特殊情況(海量數據,沒有軟件支持),這樣一個系 統由一個中等水平的程序員來開發(fā),能在一到兩周時間里做出來。
現在是2012年,如果一個程序員不能在一或二個小時——而不是1972年的一至二周——做出這個系統,我會認為他是個不可接受的程序員。這就建立起了一個31年里開發(fā)效率提高40倍、或者說每年12.5%提高的公式,由此而得到每6年開發(fā)效率提高一倍的結論。
請注意,沒有一個現代程序員所使用的開發(fā)工具是專門針對KWIC系統的需求的:這個問題需要“從頭解決”,所以,盡管跟1972年的時代不同,我們仍然可以這樣比較。
這種巨大的進步無疑是由于可復用的軟件代碼、更好的開發(fā)工具、更好的編程語言,更好的計算機教育等因素疊加的結果。但同時也是使用更快的機器、允許我們忽略掉底層的操作、使用更便捷但效率稍微次一點的解決方案的結果。
【編輯推薦】