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

我不断的听到各种关于“软件危机”的警言,以及关于软件开发缺少过程规范的批评。我做编程工作超过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年的时代不同,我们仍然可以这样比较。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/449005.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ApiBoot - ApiBoot Quartz 使用文档

ApiBoot Quartz ApiBoot内部集成了Quartz,提供了数据库方式、内存方式的进行任务的存储,其中数据库方式提供了分布式集群任务调度,任务自动平滑切换执行节点。 引用ApiBoot Quartz 在pom.xml配置文件内添加,如下配置: …

《算法竞赛进阶指南》0.4二分

102. 最佳牛围栏 农夫约翰的农场由N块田地组成,每块地里都有一定数量的牛,其数量不会少于1头,也不会超过2000头。 约翰希望用围栏将一部分连续的田地围起来,并使得围起来的区域内每块地包含的牛的数量的平均值达到最大。 围起区域内至少需要包…

Hibernate 自动创建表

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. 在 hibernate.cfg.xml 添加这句话&#xff0c;可以自动生成数据表 : <property name"hibernate.hbm2ddl.auto">upd…

程序员越老越优秀吗?

Peter Knego 向我们展示了一些有趣的东西&#xff1a; 官方数据&#xff1a;程序员年纪越大越出色、越稀有。他使用StackOverflow的声誉值和其它几个指标来印证他的观点。 他的总结是&#xff1a; 随着年龄的增加&#xff0c;程序员的数量急剧下降。程序员数量的峰值出现在2…

小程序学习(一):点击爱心变色 -- 最简单的事件实现

最近在学习小程序&#xff0c;想通过写文章来记录自己的学习历程&#xff0c;希望能做到每周都写…… 如何绑定一个事件 微信小程序中&#xff0c;绑定事件要在标签内写入这两段代码&#xff1a; bindtap"fnActive" data-favourite "{{isLike}}" 复制代码…

安全通信

安全通信 应用层协议大多数自己都没有实现加解密功能&#xff0c;比如http等。http就是直接把数据加载进来然后做简单编码&#xff08;也就是流式化&#xff09;然后响应客户端&#xff0c;然后数据在浏览器展示&#xff0c;这个数据在传输过程是明文的&#xff0c;你截获就可以…

出现 java.lang.NullPointerException 的几种原因、可能情况

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。一般报 java.lang.NullPointerException的 原因有以下几种&#xff1a;1. 字符串变量未初始化 。 2. 接口类型的对象没有用具体的类初始化…

纯JPA 入门小案例(2)

2019独角兽企业重金招聘Python工程师标准>>> JPA中的主键生成策略 通过annotation&#xff08;注解&#xff09;来映射hibernate实体的,基于annotation的hibernate主键标识为Id, 其生成规则由GeneratedValue设定的.这里的id和GeneratedValue都是JPA的标准用法。 JPA…

spring IoC/DI

一、spring创建对象的三种方式&#xff1a;1、通过构造方法创建无参构造创建&#xff1a;默认情况有参构造创建&#xff1a;需要明确配置<constructor-arg>中配置index&#xff1a;参数索引name&#xff1a;参数名type&#xff1a;参数类型&#xff08;区分基本数据类型和…

并发不是并行,它更好!

原文链接&#xff0c;译文链接&#xff0c;译者&#xff1a;雷哥&#xff0c;饶命&#xff0c;校对&#xff1a;李任 现代社会是并行的&#xff1a;多核、网络、云计算、用户负载&#xff0c;并发技术对此有用。 Go语言支持并发&#xff0c;它提供了&#xff1a;并发执行&…

详解设计模式在Spring中的应用

设计模式作为工作学习中的枕边书&#xff0c;却时常处于勤说不用的尴尬境地&#xff0c;也不是我们时常忘记&#xff0c;只是一直没有记忆。 今天&#xff0c;在IT学习者网站就设计模式的内在价值做一番探讨&#xff0c;并以spring为例进行讲解&#xff0c;只有领略了其设计的思…

开大你的音响,感受HTML5 Audio API带来的视听盛宴

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 话说HTML5的炫酷真的是让我爱不释手&#xff0c;即使在这个提到IE就伤心不完的年代。但话又说回来&#xff0c;追求卓越Web创造更美世界…

Microsoft Visual Studio 2010(vs2010) 中文版安装

Microsoft Visual Studio 2010(vs2010) 中文版安装 日期&#xff1a;2019-05-12 时间&#xff1a;20:03:36 编辑&#xff1a;张国富 下载地址 基本简介 Microsoft Visual Studio&#xff08;vs2010是简称&#xff09;是微软公司推出的开发环境。visual studio 2010…

JVM的几点性能优化

HotSpot&#xff0c;家喻户晓的JVM&#xff0c;我们的Java和Scala程序就运行在它上面。年复一年&#xff0c;一次又一次的迭代&#xff0c;经过无数工程师的不断优化&#xff0c;现在它的代码执行的速度和效率已经逼近本地编译的代码了。 它的核心是一个JIT&#xff08;Just-I…

IDEA配置 及 快捷键

出处&#xff1a; https://www.cnblogs.com/hero123/p/10120552.html 快捷键&#xff1a; 格式化代码 CtrlaltL 后退Ctrlalt <- 格式化代码快捷键&#xff1a;Ctrl Alt L 删除整行&#xff1a;CtrlX 实现类 ctrl alt CtrlN 查找类 CtrlShiftN 查找文件 CTRLSHIFTALTN 查找…

LeetCode Decode Ways

123123转载于:https://www.cnblogs.com/ZHONGZHENHUA/p/10854545.html

SpringBoot 之集成 Spring AOP

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 在开始之前&#xff0c;我们先把需要的jar包添加到工程里。新增Maven依赖如下&#xff1a; <dependency><groupId>org.spri…

9件事把你从消极情绪中解救出来

也许你很难相信&#xff0c;但是情绪可以通过重复形成习惯。消极情绪甚至可以变成某种嵌入你每日生活的东西。 如何将它们赶跑? 你发现你不断地埋怨世界和自己?你可以轻易地生气并且对人变得刻薄?那愤怒又是否成为你对事情本能的回应了?如果你对所述问题中的一个回答了“是…

数据库主键自增插入显示值

版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主同意不得转载。 https://blog.csdn.net/nwsuaf2009012882/article/details/32703597 SQL Server 2008 数据库主键自增插入显示值 前几天在工作的时候遇到在删除数据库中表的数据的时候。删除之后&#xff0c;又一次…

解决: This application has no explicit mapping for /error, so you are seeing this as a fallback.

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 报错如题&#xff0c;出现这个异常说明了跳转页面的url无对应的值. 原因1: Application启动类的位置不对.要将Application类放在最外侧…