首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

什么促进软件开发的进步

2012-12-18 
什么推动软件开发的进步?有人说,软件大牛们都是懒人,因为懒而发明新的事物,以便让大家懒得有利,懒得有成果

什么推动软件开发的进步?

有人说,软件大牛们都是懒人,因为懒而发明新的事物,以便让大家懒得有利,懒得有成果。还有人说是热情,激情什么的?听起来是不是太正面了!

其实,还有一种可能,也许更加令人信服的可能——关键在于人心的差异——不管是什么东西,只要不是自己做的,就总是能够挑出毛病,看到不喜欢——程序员总是希望创造新的,而不是维护旧的。

”windows 革命简史“一文(自己搜索)就是这样的一篇文章。无论是DDE,OLE,COM,Atl,ActiveX的任何一项技术,之所以会发生,其原因都在于“这个东西有一个致命的弱点:它(它们)???不是我们做的…”,相比那些堂而皇之的理由,“不是我们做的”似乎更加直指人性,让人们??更加容易相信。所谓的文过饰非,我想说的就是这一个意思吧。

这样的说法也可以解释很多现象。比如历史悠久,兼容性非常好的C语言(至今还在语言兵器谱上前一二位徘徊),C的最大优点是历史遗产丰厚,支持者众多,很多语言,数据库,工具都支持C语言 。而它的最大缺点则是:很基本的元素都没有,比如string类型,boolean类型,更不要说丰富内置的数据结构了;模型太过简单,当遇到稍微复杂的问题时,必须通过拼凑的技术来完成。以模块技术为例,include一个文件,为了避免重复包含,需要通过#ifndef xxx #define xx i来处理。在比如编译lib文件,需要用#pragma comment lib 之类的非常晦涩的宏——这些都应该是语言本身支持的啊。

在60年代到90年代,语言数量达到了几千种,大量的牛们为了成为某某语言之父而殚精竭虑,却没有考虑到如果大家的力量集中于C语言或者几种语言上对整个it行业更加有利。比如go语言在2009年赢得了很多人的关注,可是go和c并不兼容!zimbu也是。依我看,很多新语言的发明者尽管有冠冕堂皇的解决某个问题的理由,其实潜在的规则依然还是:它们(其他的语言)不是我做的。大量的语言的存在照成的问题比解决的问题更多——没有那个行业如同软件行业那样,让巴别塔大行其道,大量的相同业务的系统用不同的语言,利用不同的api重复的发明出来。

我还记得爱因斯坦和波尔为了量子理论整整辩论了12年,爱因斯坦的头脑,如果真正沉下心来研究量子理论,不会花费那么长的时间,不得不让人怀疑,他是不是也有同样的潜台词?。大贤大哲都是如此,我们又会如何呢。很多领域都是如此,我的一个朋友,也是前同事,曾经给我说到另外一个前同事对我的看法:“以前他非常不喜欢你,觉得你管的太多,而当他自己也在带几个人的时候,他觉得管人真的很麻烦,然后回顾到我们一起的时候,他说你真的很厉害,很有方法”。管理方面也同样在不但的重演着这一切。

??依我看,改变这一切是很难的,而利用这一点就会轻松很多。难道不正是人类的丰富多彩的差异让社会得以进步吗?一向以来,程序员之间的差异是缺乏沟通的,如果程序员看到不爽的代码,往往并不好意思直接提给作者本人,但是在背后却会发表意见:“什么破玩意,如此难用,不如自己做一个”。通过正式的代码评审,可以表现出这样的差别,从而在沟通中得到双赢的局面。从心理学角度来看,评审的好处是:

1. 看到差别,会自然的引起大家的思考,促进沟通

2. 能够参与产品的设计,提出自己的看法和沟通,对不满者也是一个心理的释放

没有争论就没有创造。太过和谐的环境,往往是缺乏创新的环境。语言这里打的热闹,才有程序员的舒服。sql这里表面上有竞争,其实是Oracle,sqlserver两家独大,形成了寡头的局面。他们两家假装竞争,其实各自有自己的地盘。没有冲突,这就是为什么这么多年来sql语言进步甚少的原因。

?

猫儿的毛要顺着摸,对人类的天然缺陷(或者说特质)也是如此。

热点排行