`
1000copy
  • 浏览: 74333 次
  • 性别: 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等工具的功能与优势,开发者不仅能够应对当前挑战,还将更好地适应未来发展趋势。

    软件开发人员行为规范

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

    软件开发工具与环境综述

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

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

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

    软件开发规范(国标)-全文档

    总的来说,《软件开发规范(国标)-全文档》是指导我国软件产业健康发展的重要基石,它帮助开发团队提升工作效率,保证产品质量,降低项目风险,同时推动整个行业的规范化和标准化。通过深入理解和遵循这些规范,...

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

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

    软件开发工具与环境PPT

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

    软件开发之星事迹.pdf

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

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

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

    编程修养 软件开发的修养

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

    微软公司软件开发模式

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

    国家标准-软件开发规范.rar

    《国家标准-软件开发规范》是指导我国软件行业健康发展的重要文件,旨在提高软件开发的质量、效率和可维护性,促进技术进步和产业升级。这份规范详细规定了软件生命周期中的各个阶段,包括需求分析、设计、编码、...

    国家标准-软件开发规范

    《国家标准-软件开发规范》是一套全面指导我国软件开发过程的重要规范,旨在提高软件质量、降低开发风险,并推动行业的规范化发展。这套规范包含了14个标准文档,涵盖了软件开发的各个环节,从需求分析到系统测试,...

    软件开发工具-第一章.ppt

    总的来说,学习软件开发工具的目的是理解其原理、掌握其使用,以便在实际工作中做出明智的选择,提高工作效率,同时能够参与或组织工具的研发,推动软件工程的进步。软件开发工具是连接硬件和软件的关键,是解决软件...

    软件开发的项目 适合学生

    【标题】:“软件开发的项目 适合学生” 在软件开发的世界中,项目是学习和实践的核心。这个项目尤其适合学生,因为它提供了...总之,这是一个绝佳的学习工具,能够激发学生的兴趣,推动他们在软件开发领域不断进步。

    面向智能化软件开发的开源生态大数据.pdf

    这样的框架和环境,为智能化软件开发提供了数据支撑,推动了智能化软件开发的进步。 在大数据时代,开源生态大数据为软件开发提供了宝贵的资源和数据基础。通过分析和挖掘这些数据,可以开发出新的智能化软件,并在...

    软件开发流程具体过程

    在现代信息化社会中,软件开发已成为推动技术进步和社会发展的重要力量之一。为了确保软件项目的顺利进行并达到预期目标,制定一套完整的、科学合理的软件开发流程至关重要。本文将围绕“软件开发流程具体过程”这一...

Global site tag (gtag.js) - Google Analytics