`
1000copy
  • 浏览: 74701 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

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

阅读更多

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

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

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

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

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

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

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

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

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

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

 

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

0
1
分享到:
评论

相关推荐

    软件开发人员变成ChatGPT开发人员?.docx

    ### 软件开发人员变成...综上所述,随着AI编程技术的进步,软件开发人员的角色正在经历深刻的变革。通过了解并掌握GPT-3和Copilot等工具的功能与优势,开发者不仅能够应对当前挑战,还将更好地适应未来发展趋势。

    (完整版)软件开发技术服务合同模板.pdf

    在当今信息化社会,软件开发已成为推动社会进步和经济发展的重要力量。为了确保软件开发项目能够顺利进行并达到预期目标,一份详尽的软件开发技术服务合同是不可或缺的。《(完整版)软件开发技术服务合同模板.pdf》...

    软件开发人员行为规范

    《软件开发人员行为规范》是指导程序员在软件开发过程中应当遵循的一套准则,旨在提高团队协作效率,保证软件质量,并确保项目的顺利进行。规范涵盖了从项目管理、代码编写到技术选型等多个方面,以下是其中的核心...

    软件开发工具与环境综述

    软件开发工具与环境的不断发展和完善,推动了软件工程理论的进步,使得软件开发更加高效、规范和可靠。随着云计算、人工智能等新技术的应用,未来的软件开发工具将更加智能化,为开发者带来更大的便利。

    96篇软件开发论文 --中英对照

    在全球化的今天,软件开发已成为一个跨文化...总之,《96篇软件开发论文 --中英对照》是一个不可多得的资源,它为软件开发者、项目经理、学者和学生提供了丰富的学习材料,有助于他们在软件开发领域中不断进步与创新。

    软件开发的201个原则v1.3.pdf

    - **核心思想**:技术始终是推动软件开发进步的核心力量。 - **实践建议**:持续关注技术发展趋势,不断提升团队的技术能力。 ##### 32. **使用文档标准** - **核心思想**:标准化的文档有助于提高工作效率。 - **...

    软件开发 软件方法论

    UMLChina自1999年由潘加宇创立以来,一直致力于推动软件工程领域的进步和发展。从最初的程序员身份出发,潘加宇不仅创建了UMLChina,而且还持续关注并参与到软件工程各个方面的实践中去。2001年底,阿里巴巴的吴泳铭...

    敏捷软件开发Agile介绍PPT课件.pptx

    这些价值观推动了敏捷运动的发展,并使得敏捷软件开发方法在软件开发行业中备受欢迎。 敏捷理念 敏捷理念是敏捷软件开发的核心思想,包括不断调整以适应变化、激发团队潜能、聚焦客户价值三方面的内容。敏捷理念...

    GB 8567-88软件开发主要文档编写规范

    在当今这个信息技术高度发达的时代,软件开发已成为推动技术进步的重要力量。软件项目的成功实施依赖于多个因素,其中包括严格遵循软件开发流程的规范性文档。《GB 8567-88 软件开发主要文档编写规范》是中国针对...

    国家标准-软件开发规

    《国家标准-软件开发规范》作为软件工程项目中的基础和重要组成部分,对于推动我国软件产业的技术进步和提升软件产品质量具有极其重要的作用。该规范提供了标准化的流程和方法,旨在实现软件开发的全过程高效化、...

    软件开发工具与环境PPT

    《软件开发工具与环境》是IT领域中一个重要的主题,主要涵盖了软件开发过程中使用的各种工具和平台,旨在提高开发效率和...随着技术的发展,未来的软件开发工具和环境将更加智能化和自动化,进一步推动软件产业的进步。

    软件开发之星事迹 (2).pdf

    在当今信息化时代,软件开发已经成为了推动社会进步和技术发展的关键力量。在软件开发的领域里,有一群人,他们以卓越的学习态度、创新意识和技术实力,成为行业的明星,他们的事迹激励着一代又一代的软件开发者不断...

    软件开发与设计项目实施方案

    通过这样的竞技平台,不仅可以有效提升选手们的软件开发能力,还为他们提供了一个展示个人才华和交流经验的机会,进一步推动了河北省乃至全国的软件开发技术水平的提升。 河北省职业技能大赛的这一项目实施方案,...

    软件开发之星事迹.pdf

    7. 创新思维:陈x参与的“挑战杯”电子创新设计,以及预期能申请专利的产品,体现了他的创新思维,这是在互联网时代推动技术进步的关键因素,软件开发者需要有持续创新的意识。 8. 奖项荣誉:两人获得的一系列奖学...

    软件开发设计报告全套模板

    在当今快速发展的技术世界中,软件开发已成为推动社会进步的重要力量。从智能手机应用到企业级解决方案,再到复杂的网络系统,软件的每一次迭代都离不开周密的规划和详尽的文档记录。尤其是在项目伊始,一套完整的...

    软件开发:分析计算机软件开发技术发展思路.pdf

    在这样的情况下,需要更多专业的软件人才才能满足行业内部的发展,我国的软件开发行业在这一过程中必须要有充足的人员支持,所以最近几年,我国的软件开发行业在不断的进步,软件开发方面的专业人才在数量上也有了...

    编程修养 软件开发的修养

    在当今高度依赖信息技术的社会中,软件开发已成为推动科技进步的关键力量之一。而作为软件开发的核心——程序员的角色显得尤为重要。一名优秀的程序员不仅需要掌握扎实的技术基础,还需要具备良好的职业素养和个人...

    微软公司软件开发模式

    随着信息技术的快速发展,软件开发已成为推动全球科技进步的关键力量之一。微软作为全球领先的软件公司,在软件开发领域积累了丰富的经验和独到的方法论。《微软的秘密》这本书深入剖析了微软的软件开发模式,为业界...

Global site tag (gtag.js) - Google Analytics