扬尼斯定律:程序员开发效率每6年提高一倍

开发
我不断的听到各种关于“软件危机”的警言,以及关于软件开发缺少过程规范的批评。我做编程工作超过15年,我认为这些言论基本上都是错的:我确信我能在很短的时间里用如今的开发工具复制出15年前一个不错的程序员开发出的东西。

模仿摩尔定律和Proebsting定律(这个不像是预言,更像是挑唆),我要给出的定律是:程序员的开发效率每6年提高一倍。

为了证实我这个定律里的数字部分,请注意下面我的发现。在1972年的《在分解模块化系统中用到的规范(On the Criteria to Be Used in Decomposing Systems into

Modules)》这篇经典论文里,作者David Parnas写道:

KWIC索引系统接受一个有序的多行信息,每行由有序的多个词组成,每个词由有序的多个字符组成。每行信息都能通过把第一个词挪到行尾这样“循环变换”。 KWIC索引系统的输出是每行内容都通过字母顺序经过“循环变换”后的新行。这是一个小系统,如果不考虑特殊情况(海量数据,没有软件支持),这样一个系 统由一个中等水平的程序员来开发,能在一到两周时间里做出来。

现在是2012年,如果一个程序员不能在一或二个小时——而不是1972年的一至二周——做出这个系统,我会认为他是个不可接受的程序员。这就建立起了一个31年里开发效率提高40倍、或者说每年12.5%提高的公式,由此而得到每6年开发效率提高一倍的结论。

请注意,没有一个现代程序员所使用的开发工具是专门针对KWIC系统的需求的:这个问题需要“从头解决”,所以,尽管跟1972年的时代不同,我们仍然可以这样比较。

这种巨大的进步无疑是由于可复用的软件代码、更好的开发工具、更好的编程语言,更好的计算机教育等因素叠加的结果。但同时也是使用更快的机器、允许我们忽略掉底层的操作、使用更便捷但效率稍微次一点的解决方案的结果。

【编辑推荐】

责任编辑:彭凡 来源: 伯乐在线
相关推荐

2012-07-04 09:30:49

程序员开发效率

2022-06-24 08:20:56

requests爬虫Python

2024-04-02 10:13:25

在线小工具开发

2011-09-30 11:13:31

51CTO博客一周热门程序员

2009-09-16 10:05:06

GoogleChrome 3.0浏览器

2023-04-10 14:22:26

PCIe6.0PCIe

2024-02-05 08:00:00

代码生成人工智能自然语言

2019-11-27 10:08:36

程序员技能开发者

2021-03-26 11:52:50

Debug效率运行

2011-02-22 09:29:33

无线网络无线网速

2020-05-12 10:43:30

谷歌算法人工智能

2020-04-22 09:04:27

Linux命令行搜索工具

2009-06-15 08:47:33

微软Windows 7操作系统

2021-07-19 05:53:32

程序员工作效率效率

2014-03-28 10:30:20

程序员码农

2019-03-10 22:41:53

量子芯片网络

2012-07-16 00:51:36

程序员效率

2017-09-11 11:15:31

Android提升效率

2021-03-22 22:38:04

程序员工具编码

2016-03-07 11:09:00

.NET程序员开发工具
点赞
收藏

51CTO技术栈公众号