`
1000copy
  • 浏览: 72499 次
  • 性别: 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
分享到:
评论

相关推荐

    现代软件工程在软件开发中的应用.doc

    【关键词】现代软件工程 现代软件开发 应用用 科学技术的进步推动着软件工程向新的层次迈进,现代软件工程方法也渐渐取 代了过去传统软件工程方法在软件开发过程中的作用,成为越来越多软件开发团队的选 择,而过去...

    2现代软件工程在软件开发中的应用.doc

    【关键词】现代软件工程 现代软件开发 应用用 科学技术的进步推动着软件工程向新的层次迈进,现代软件工程方法也渐渐取 代了过去传统软件工程方法在软件开发过程中的作用,成为越来越多软件开发团队的选 择,而过去...

    1现代软件工程在软件开发中的应用.doc

    【关键词】现代软件工程 现代软件开发 应用用 科学技术的进步推动着软件工程向新的层次迈进,现代软件工程方法也渐渐取 代了过去传统软件工程方法在软件开发过程中的作用,成为越来越多软件开发团队的选 择,而过去...

    基于高端科技的计算机软件开发技术分析

    高端科技是未来科学发展的主流方向,也...计算机软件开发技术在不断地更新、进步,而基于高端科技的计算机软件开发也成为了计算机软件开发技术的未来发展方向。文章以高端科技为背景,进行计算机软件开发技术的深入分析。

    嵌入式与物联网开发是当今信息技术领域的两大重要分支,它们相互交织,共同推动着智能化时代的进步 嵌入式开发主要关注在嵌入式操作

    嵌入式与物联网开发是当今信息技术领域的两大重要分支,它们相互交织,共同推动着智能化时代的进步。 嵌入式开发主要关注在嵌入式操作系统下进行软件与硬件的综合研发。这不仅仅是单纯的软件或硬件技术,而是一门...

    浅谈测试驱动开发(TDD)

    背景一个高效的软件开发过程对软件开发人员来说是至关重要的,决定着开发是痛苦的挣扎,还是不断进步的喜悦。国人对软件蓝领的不屑,对繁琐冗长的传统开发过程的不耐,使大多数开发人员无所适从。最近兴起的一些软件...

    测试驱动开发(TDD)入门讲解及代码实例

    一个高效的软件开发过程对软件开发人员来说是至关重要的,决定着开发是痛苦的挣扎,还是不断进步的喜悦。国人对软件蓝领的不屑,对繁琐冗长的传统开发过程的不耐,使大多数开发人员无所适从。最近兴起的一些软件开发...

    基于SSM和VUE的打飞机游戏毕业设计(免费提供全套java开源项目源码+论文)

    在当前数字化时代,游戏行业作为数字娱乐的重要组成部分,不断推动软件开发技术的进步。本项目是一个基于SSM(Spring、SpringMVC、MyBatis)和Vue.js框架开发的打飞机游戏,旨在通过实践探索现代Web技术在游戏开发中...

    基于Swoole扩展开发游戏服务器框架-游戏开发

    同时,人工智能、云计算和大数据等新兴技术也在不断推动计算机技术的进步。计算机技术的应用广泛,涵盖了各个领域,如商业、医疗、教育和娱乐等。随着计算机技术的不断革新,我们可以更加高效地实现预期自动化、标准...

    [人工智能改变什么]人工智能如何改变生活.docx

    算法发生器和灵巧的数据结构获得应用,自动程序设计技术将开始对软件开发产生积极影响。所有这些在研究人工智能时开发出来的新技术,推动了计算机技术的发展,进而使计算机为人类创造更大的经济实惠。 二、人工智能...

    前端vue +后端 koa-前端开发

    同时,人工智能、云计算和大数据等新兴技术也在不断推动计算机技术的进步。计算机技术的应用广泛,涵盖了各个领域,如商业、医疗、教育和娱乐等。随着计算机技术的不断革新,我们可以更加高效地实现预期自动化、标准...

    使用asyncio和 aiohttp开发的轻量级异步协程 web爬虫框架-爬虫开发

    同时,人工智能、云计算和大数据等新兴技术也在不断推动计算机技术的进步。计算机技术的应用广泛,涵盖了各个领域,如商业、医疗、教育和娱乐等。随着计算机技术的不断革新,我们可以更加高效地实现预期自动化、标准...

    医院门诊信息管理系统.doc

    从而掌握软件开发整体过程,把知识运用实际生产中。 关键词:数据库管理系统,餐饮管理系统, 系统设计, jsp,mssql2005 1 前言 科技进步将人类带到了信息时代,计算机已成为各行各业在业务处理与管理工作中必 不可...

    基本的Flutter蓝牙串行-移动应用开发

    同时,人工智能、云计算和大数据等新兴技术也在不断推动计算机技术的进步。计算机技术的应用广泛,涵盖了各个领域,如商业、医疗、教育和娱乐等。随着计算机技术的不断革新,我们可以更加高效地实现预期自动化、标准...

    Proteus软件仿真与Keil的单片机系统设计

    随着半导体技术的飞速发展,...单片机功能越来越强大,价格却不断下降的优势无疑成为嵌入式系统方案设计的首选,同时单片机应用领域的扩大也使得更多人加入到基于单片机系统的开发行列中,推动着单片机技术的创新进步。

    医院门诊信息管理系统.pdf

    从而掌握软件开发整体过程,把知识运用实际生产中。 关键词:数据库管理系统,餐饮管理系统, 系统设计, jsp,mssql2005 1 前言 科技进步将人类带到了信息时代,计算机已成为各行各业在业务处 理与管理工作中必不可...

    本科毕业设计开题报告(飞翔的小鸟游戏的设计与实现V3)

    在软件开发过程中,解决技术问题使用的方法是文献法,通过查阅课本、图书馆资料和网络在线文献等,解决在软件开发过程中的技术问题,比如数据库、建模工具的使用、软件测试等。 七、选题的特色及创新点 选题的特色...

    关节式工业机器人仿真及上位机控制软件研究

    在 OpenGL 和 Visual C++环境下,开发了一套上位机控制软件,主要实现 了两种功能,第一,能够在 PC 机上模拟该机器人的关节运动,直观的显示出 该机器人的技术参数;第二,实现了对本已由于各种原因不能动作的 ...

    通过区块链技术来简化DevOps流程

    DevOps是近年来推动技术进步的动力。DevOps为我们提供了一个...DevOps是一种软件交付的整体方法,它统一了软件开发(Dev)和软件运营(Ops)。它涉及软件工程各阶段的自动化和更短的开发周期。Netflix是成功应用DevOps

Global site tag (gtag.js) - Google Analytics