推动软件进步的到底是什么?
有人说,软件大牛们都是懒人,因为懒而发明新的事物,以便让大家懒得有利,懒得有成果。还有人说是热情,激情什么的?听起来是不是太正面了!
其实,还有一种可能,也许更加令人信服的可能——关键在于人心的差异——不管是什么东西,只要不是自己做的,就总是能够挑出毛病,看到不喜欢——程序员总是希望创造新的,而不是维护旧的。
”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. 能够参与产品的设计,提出自己的看法和沟通,对不满者也是一个心理的释放
3. 坦诚沟通的气氛,是做成真正优秀的产品的关键
我想这就是代码评审的最大意义了。
另外一个需要考虑的是,代码评审并不能在非常大的范围内完成,也很难在互相竞争的公司之间进行。因此代码评审依然是很有局限的。商业化引来的全球的开放,也必然带来竞争公司之间的重复发明。
即使在并无太多商业化的开源社区,做到这一点也并不容易。还好linux给了我们一个很好的成功典范。这说明code review和create common也是可行的。
所以没有什么万灵药,并且推动软件进步的可能依然是“这不是我们做的”。让重复发明来的更猛烈吧,让create common也来的更猛烈吧。
分享到:
相关推荐
在法律上,AI发明创造活动可能同时涉及操作者、AI开发者、使用者等多个主体,这些主体可能以不同的形式参与到发明创造和专利侵权的过程中。然而,确定谁应当为侵权行为承担责任并不简单。各个参与方可能相互独立,有...
总的来说,出蓝OutBlue是一款极具价值的创新辅助工具,它通过智能化的组合算法,帮助用户快速生成和筛选发明创造的可能方案,推动了人类的创新进程。无论是在科学研究、工程设计,还是在日常生活中的小发明,都可以...
对于人工智能完成的发明,创造性审查需要考虑创造性来源、创造性标准和创造性判断的客观化。人工智能作为发明工具,其发明成果的创造性应如何评估,是否可以简单套用传统的“技术进步”标准,这些问题都需要专利法和...
1. **专利申请管理**:我国学者在国外完成的发明创造,其专利申请权的管理和协调工作由我国驻外使馆科技处或指定的相关处室负责,国内的归口单位是中国专利局。这一规定确保了在海外的中国学者能够及时、有效地对...
在当今快速发展的时代,掌握和运用创新思维显得尤为重要,因为它可以帮助我们适应变化,抓住机遇,实现个人和社会的共同繁荣。无论是科学研究、商业运营还是日常生活,创新思维都是我们不可或缺的工具,它能帮助我们...
《大班科学优秀详案《跟大自然学发明》含反思》是一份针对幼儿教育的科学活动计划,旨在通过生动的故事和互动游戏,启发幼儿的观察力、想象力和创造力,让他们理解仿生学的概念,即从大自然中获取灵感来发明创造。...
发明和革新共同构成了技术进步的驱动力。例如,洗衣机的发展历程,从原始的手动搅拌式洗衣机到现在的全自动滚筒洗衣机,甚至无需洗衣粉的电解水洗衣机,每一次革新都带来了更高效、更环保的洗涤方式。通信技术的演进...
而朱雪忠教授则提出人工智能发明成果的权利应当由人工智能和其背后的自然人或法人共同享有。 四、应对人工智能对专利制度冲击的策略 为了缓解人工智能对现有专利制度的冲击,可以采取以下策略:提高专利审查和认定...
技术发明是指创造出自然界原本不存在的事物、工艺或方法。例如,集成电路的发明,这是20世纪最重要的科学突破之一。美国硅谷的科研人员在半导体领域取得的成就,使我们拥有了晶体管和集成电路,进而发展出大规模集成...
1. 创新性:创新包含了两个方面,一是发明,即创造出自然界原本不存在的新事物;二是革新,即对现有技术的改进和提升。两者共同推动技术的进步,用新技术替代过时的技术,促进技术的飞跃和革命性变革。 2. 区别与...
发明专利是指对新技术、新设计或新方法的创造性贡献,通常涉及产品的制造方法、构造、组成或用途。在电脑鼠标领域,发明专利可能涵盖机械结构、光学系统、传感器技术、无线通信、人体工学设计等多个方面。 在鼠标的...
教学重难点包括理解四大发明的具体创造过程、后续发展及其对生活的影响,以及激发学生的民族自豪感。教师通过故事表演、互动计算、实物操作(如制作指南针)和多媒体展示等多种方式,引导学生积极参与,以突破教学...
人工智能生成发明的可专利性及其权利归属是当前专利...未来对于人工智能生成发明的专利法改革,需要结合专利法的基本原则和创新激励机制,以及通过国际间的合作与协调,共同构建一个能够适应新时代技术发展的法律框架。
一方面,需要考虑AI创造物是否符合专利法对于发明创造的要求,即是否具有新颖性、创造性和实用性。另一方面,也要考虑在保护发明人的智力成果和促进社会公共利益之间找到平衡点。 我国在计算机程序专利保护方面,也...
关于人工智能参与发明的实用性、新颖性和创造性判断,研究提出在坚持专利法审查原则的基础上,结合人工智能技术特征,赋予审查主体、审查要点等新内涵。这意味着在审查人工智能相关发明时,应当考虑其独特的技术特点...
创造性思维不仅体现在科技发明和艺术创作上,更渗透在日常生活的各个领域,推动着社会的进步。 创造性思维的培养在当今世界显得尤为重要,因为在全球化的背景下,仅仅依靠模仿和加工已不能维持长久的竞争优势。中国...