歡迎您光臨本站
註冊
首頁
搜尋
首頁
資訊
文檔
開源
問答
知識
專題
開源互助社區
>
文檔
>
Linux
揚尼斯定律:程序員的開發效率每6年提高一倍
←手機掃碼閱讀
火星人
@ 2014-03-26 ,
reply:0
來源:伯樂在線
我不斷的聽到各種關於「軟體危機」的警言,以及關於軟體開發缺少過程規範的批評。我做編程工作超過15年,我認為這些言論基本上都是錯的:我確信我能在很短的時間裡用如今的開發工具複製出15年前一個不錯的程序員開發出的東西。
模仿摩爾定律和Proebsting定律(這個不像是預言,更像是挑唆),我要給出的定律是:程序員的開發效率每6年提高一倍。
為了證實我這個定律里的數字部分,請注意下面我的發現。在1972年的《在分解模塊化系統中用到的規範(On the Criteria to Be Used in Decomposing Systems into Modules)》這篇經典論文里,作者David Parnas寫道:
KWIC索引系統接受一個有序的多行信息,每行由有序的多個片語成,每個詞由有序的多個字元組成。每行信息都能通過把第一個詞挪到行尾這樣「循環變換」。 KWIC索引系統的輸出是每行內容都通過字母順序經過「循環變換」后的新行。這是一個小系統,如果不考慮特殊情況(海量數據,沒有軟體支持),這樣一個系統由一個中等水平的程序員來開發,能在一到兩周時間裡做出來。
現在是2003年,如果一個程序員不能在一或二個小時——而不是1972年的一至二周——做出這個系統,我會認為他是個不可接受的程序員。這就建立起了一個31年裡開發效率提高40倍、或者說每年12.5%提高的公式,由此而得到每6年開發效率提高一倍的結論。
請注意,沒有一個現代程序員所使用的開發工具是專門針對KWIC系統的需求的:這個問題需要「從頭解決」,所以,儘管跟1972年的時代不同,我們仍然可以這樣比較。
這種巨大的進步無疑是由於可復用的軟體代碼、更好的開發工具、更好的編程語言,更好的計算機教育等因素疊加的結果。但同時也是使用更快的機器、允許我們忽略掉底層的操作、使用更便捷但效率稍微次一點的解決方案的結果。
[本文英文原文鏈接:Yannis's Law: Programmer Productivity Doubles Every 6 Years ]
Tags:
linux
system
內核
Postfix + Dovecot + Cyrus-SASL + MailScanner + MailScanner-Mtrg + OpenWebmail
開源軟體之七宗罪以及背後的陰謀
Pure-FTPd限制用戶只能上傳特定類型的文件
問 :為什麼需要 CNAME 記錄?
JAVA的中文處理學習筆記
DAVINCI DM365-DM368開發攻略——linux-2.6.32的移植
分析pptpd程序中關於執行pptpd和pppd程序的部分源代碼
轉載: 擯棄 Windows 低效率的工作方式,發掘 Linux 身上的 UNIX 氣質
Linux中通過緩存DNS的解析來提高上網的響應速度
linux問答99
virtualbox的新功能「支持從host 系統執行 guest 應用程序」?
問一個老問題,apache的動態編譯.
GNOME2 桌面系統中基於 MIME 類型的應用程序集成
構造Linux的圖形化安裝程序(1)
利用 squid 反向代理提高網站性能
構造Linux的圖形化安裝程序(2)
CICS-COBOL的異常系統 .
中斷處理程序2...........
apache+jk+tomcat集群+session同步
動態DNS設置攻略
[已解決]apache FastCGI問題.
在Linux操作系統中提高多個Swap分區的性能
巧用FC5的「添加/刪除程序」
Linux系統生成引導盤與驅動程序盤的方法
可愛的 Python:使用 Spark 模塊解析
給明智的系統管理員的 10 條提示
使用GCC編譯參數提升軟體工作效率
JavaScript執行效率小結
history?如何提高效率
用Ant和Eclipse有效地提高部署效率
[
火星人
]
揚尼斯定律:程序員的開發效率每6年提高一倍
已經有
116
次圍觀
本文地址:
http://coctec.com/docs/linux/show-post-183201.html
熱門文章
VMware 虛擬機(linux)增加根目錄磁碟空間
Linux系統調用函數fork()用法詳解
Linux和Unix系統的關係和區別詳細介紹
linux下使用mount掛著網路磁碟
用ghost備份和還原Linux系統
Raspberry Pi:完美的家用伺服器
5款替代微軟Visio的開源免費軟體
5 款 Ubuntu 系統監控工具
如何查找 Linux 死機原因?
Df命令:查看Linux磁碟剩餘空間方法介紹
最新文章
CentOS使用expect批量遠程執行腳本和命令
3000字掃盲shell基礎知識(新手必備)
Linux 系統雙網卡綁定配置實現
在Ubuntu中實現人臉識別登錄的完整步驟
Linux下9種優秀的代碼比對工具推薦小結
Linux中fuser命令用法詳解
Linux系統使用Fuser命令的方法
Linux如何在Vim中更改顏色和主題
如何使用win10內置的linux系統啟動spring-boot項目
Linux 常用命令操作大全