宅神进化史(从图灵变辣鸡)——Apache基金会副总裁的分享

本文主要是介绍宅神进化史(从图灵变辣鸡)——Apache基金会副总裁的分享,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

为什么80%的码农都做不了架构师?>>>   hot3.png

致谢:

《宅神进化史-Evolution of Homo Nerdis》是前Apache软件基金会副总裁Niclas Hedhman在2017中国开源年会上做的演讲。易软天创的小伙伴参加了此次年会,听了这个演讲。在征得了Niclas Hedhman先生的同意后,将此演讲使用的PPT翻译成中文,分享给大家。再次向Niclas Hedhman先生表示感谢!

对Niclas先生所提到的“小而精”,我们是十分赞同的,这也在我们禅道 、蝉知 和然之等多个产品上得以体现。所以特将此文推荐给各位管理者和IT的朋友们。

PPT内容如下, 转载请注明出处! 作者:Niclas Hedhman 翻译:滕菲@易软天创

软件行业的危机

我喜欢用一些有争议性的话题做为我演讲的标题,这次演讲的标题也不例外。宅神进化史——从图灵变辣鸡(垃圾)。

有谁不知道艾伦·图灵吗?这是个反问句。谁不知道图灵先生啊,但是你知道辣鸡先生吗?看看周围,在座的大多数都是辣鸡(垃圾)先生。

此次演讲是去年演讲的续篇,去年讲的是《房间里的大象》,讲的是程序员质量下降的问题。上次演讲,我讲了软件行业的危机是什么,以及为什么有这些危机。这次我要讲讲,我们是怎么走到今天这一步的,我们要面对什么样的威胁,可能还会讲讲未来将会怎样。

退化

在《房间里的大象》的演讲中,我谈到了软件行业有非常多的程序员,而这些程序员都太愚蠢了。我认为,这是因为程序员在退化。我们现在所做的一切正导致了一个糟糕的未来,而这种情况很久之前就开始了。

1、宅神编码员(Homo Nerdis Codetus)

输入图片说明

这是怎么回事呢?刚开始,有些人可以组建机器来做一些“思考”。他们可以通过一些电线来连接不同的配置,或者在打孔卡上输入一些数值让这些机器做数学运算。机器做得比人好多了,但当时要做到这些是很难的。

这确实很难,能做到这些的一类人是被称为Homo Nerdis Codetus的做编码的人。诸如艾伦·图灵,葛丽丝·霍普,艾兹格·迪科斯彻这些偶像级的人物,他们做到了这些不可能完成的事。

很快,人们就想,做到这些事应该还有更好的解决方法。由此产生了编程语言。早期产生了Algol,Cobol, Fortran以及Lisp 。然后又有了C语言, Pascal,Forth,,Simula,Prolog,以及许多现在已经不复存在的编程语言。

然后就有了源代码,也就是看起来像是英语的东西。这类编程人员在新的环境里创造出了各种各样源代码的变种,而他们也不必和上一代编码员一样聪明,因为做事的方法变简单了。但是事情还是很难做。

2、宅神程序员(Homo Nerdis Programmeris)

输入图片说明

随着编程语言的出现,程序员(Programmer)可以通过使用看起来像是语言的文本来操作机器做事。这在当时是很难的。

但有些程序员注意到,他们要写的很多东西会不断地重现。他们就想,如果能将这些东西放到一个库(Library)里,需要用的时候就拿出来重复使用,这该多好。于是,他们把可能写出的各种组合写出来放到库里,供自己使用。

越来越多的库被建造出来。程序员数目的增长也到达了爆发的阶段。但是由于做事的方法变简单了,所以人不用很聪明也可以做写程序这件事。而正因为写程序这件事没有用那些很聪明的人来做,那么对他们而言,事情做起来还是很困难的。

3、宅神开发人员(Homo Nerdis Developiens)

输入图片说明

那时需要大量的开发人员(Developer)。有了这些库作为基础,开发人员创造出了新的、更复杂的软件。由于库与库并不能兼容,开发人员要花很多时间使不同的库进行协作、转换库的类型、替换掉糟糕的实施。这在当时来说是很难做的事。

有些开发人员就认识到,如果能创造一种机制来描述组件应该怎么写,那么他们就可以把组件组合起来使用。于是,框架产生了。

随着组件越来越多,使用组件来工作的效率也得到提高,工作也变得简单了。然后,开发人员的数量也增长了,增长之快使开发这件事不需要很聪明的人来做。但是,事情还是很难做。

4、宅神开发人员(Homo Nerdis Scriptum Kidus)

输入图片说明

框架和组件让软件业迅速膨胀起来,数不清功能相似的软件以各种各样的形式不断涌现。这可不是什么好事。一定还有更好的方法来做这事。如果可以不用写系统、编译器和架构就好了。因为要做的这些,也很难啊。

也许可以用简单的语言描述想要的东西,这种语言看起来更像英语。也许这和语言类型没什么关系。这样的话,事情就会变得更简单,做起来更快,不是吗?至少刚开始这样做的时候是这样,工作做起来更快了。

开始做网页很简单,你做的第一个网页往往是在页面上显示个时间什么的。“哇哦,我也是个程序员了?”然后,这种能写script的毛头小子(Homo Nerdis Scriptum Kidus)的程序员数量迅速增长,突破天际。

这种工作真的不需要很聪明的人来做。好吧,也许还是需要聪明的人来做,因为这事情还是很难做啊。

5、宅神开发人员(Homo Nerdis Devoplus)

输入图片说明

这些写脚本的毛头小子写了很多只能在自己笔记本上运行的软件,那么怎样才可以让这些软件真正的工作起来,服务更多的用户,怎样才能让他们写的软件一周七天、每天24小时地为用户服务呢?这在当时是很难做到的啊。

于是有产生了一类人,就是运维开发人员(Homo Nerdis Devopolus)。这些运维开发人员(Devops)和自动化、容器一起孕育而生。这类人吸引了所有的注意力,他们通过快速改变生产系统拯救了走向失败的软件项目。解决生产系统中的缺陷,而不是在缺陷产生之前就消灭它,成为了一种工作方式。

越来越多的软件进入了市场。安装,配置,开始运行。运维开发人员认为他们创造的这些软件,在这儿用个脚本,那儿加个λ表达式(lambda表达式)就行。看,这就成了。

这能有多难呢?运维开发人员开始占领世界,其数量迅速增长,也占有越来越重要的位置,但不幸的是他们的聪明才智并没有产生这样迅速而重要的变化。我们使用微服务架构(microservices architecture)以及数以千计的小程序,但却不理解网络到底是如何工作的。所以猜猜这会怎么样?事情还是很难做啊。

事情很难做!

所以说到的这些退化的共有主题是什么?是事情很难做啊!!!无论如何改善,使事情变得如何简单,事情还是不好做。这是为什么?

我们不喜欢事情变得难做。艾伦·图灵,葛丽丝·霍普会认为我们当今的技术很难吗?我觉得不会。他们是那个时代最聪明的人。至于你我,可能比普通人聪明一点点,只是接受的教育和教养略有不同。

从公司角度考虑,他们会认为人多力量大。我认为这是违反生产力的,在《房间里的大象》的演讲理我也提到过。谷歌不需要两万工程师。银行的IT部门也不需要一万个员工。

输入图片说明

程序员这一行的发展呈螺旋式下降已经有很长一段时间了。因为一些事情做起来很难,我们就创造一些新的东西来解决这个问题,因此也降低了从事写程序这件事的门槛,让更多没有那么聪明的人也可以参与到这件事中来,而这又造成了更多的没有那么聪明的人觉得这件事情很难做。让我们静下来,好好思考一下这种情况的产生。

把事情简单化,却导致产生了更多愚蠢的解决方案。而我们居然对此毫无察觉。

证据

  1. 程序员人口爆炸
  2. 技术周期
  3. “老(有经验的)”人更重要、宝贵
  4. 收入差距加大
  5. 缺少聪明的人来领导革新工作

我有很多的证据来证明我的这个观点,但由于时间有限,这里不再多说。这些以足够说明,我们今天认为正常的事情,等我们回过头来看,会觉得那并不正常。

这场战斗注定要失败了吗?

输入图片说明

那么在这场战役中我们注定要失败了吗?要不要打包走人,去开个餐馆得了?对于老的系统来说,不得不对其继续进行维护,是的,这种战斗是注定要输的。为这种系统工作的人,假装一切运转正常,而它却会消耗所有愿意在这种糟糕环境里工作的人。来自市场的压力最终会让他们清醒过来,而这种系统也会被从市场中排挤出去,就像当初马车被卡车代替一样。

当开始做一个新项目或一个新的产品的时候,我认为,我们还是需要用聪明的人来做,这类人能使事情向正确的方向发展。一般的做事方法代价比较昂贵,也更加容易导致失败。我们需要的是事半功倍。把事情控制在小的范围内,由聪明的人来做,慢工出细活。

什么意思?

到底什么是小而精,慢慢做呢?你一定是第一次听说这种说法(Small, Smart and Smoldering)。

输入图片说明

Small——小而精,慢慢做的意思是缩小团队规模。整个团队的规模都要缩小,这样预算会变少,要完成的工作范围也会变小。技术栈需要简化、缩小,使用上千台电脑来为很多软件服务的的系统也需要将其使用的机器数量减半。

Smart——聪明的人知道怎样使用更少的电脑却能更好的完成工作。不要把所有的预算都用在通过网络做序列化以及去序列化的工作上。聪明的做法是通过更敏捷的实施和组织方式启动新项目,并在软件开发的各个环节提供更好的反馈。

Smoldering——慢慢做是一种没有明火、不用烟熏的烹饪方法,就像用烧烤的方法做牛排那样。我坚信,我们正处于软件开发革命一触即发的时刻,高能量的团队会从保守、浮夸的框架、以及挫伤士气的环境中脱离出来。我坚信,运维开发人员和毛头小子的时代很快就会结束,就算是为了业内拓荒者的出现,他们必须消失。那么问题只有一个,这样的时代是怎样的时代?

未来是光明的

未来从事软件开发行业的人会越来越少。我们将会看到小型的团队创造伟大的东西。未来是光明。会产生有前途的想法、项目、以及人。谢谢!

该文章转载自:http://www.cnezsoft.com/dynamic/80242.html

输入图片说明

转载于:https://my.oschina.net/candou/blog/1625941

这篇关于宅神进化史(从图灵变辣鸡)——Apache基金会副总裁的分享的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/773720

相关文章

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

java常用面试题-基础知识分享

什么是Java? Java是一种高级编程语言,旨在提供跨平台的解决方案。它是一种面向对象的语言,具有简单、结构化、可移植、可靠、安全等特点。 Java的主要特点是什么? Java的主要特点包括: 简单性:Java的语法相对简单,易于学习和使用。面向对象:Java是一种完全面向对象的语言,支持封装、继承和多态。跨平台性:Java的程序可以在不同的操作系统上运行,称为"Write once,

分享5款免费录屏的工具,搞定网课不怕错过!

虽然现在学生们不怎么上网课, 但是对于上班族或者是没有办法到学校参加课程的人来说,网课还是很重要的,今天,我就来跟大家分享一下我用过的几款录屏软件=,看看它们在录制网课时的表现如何。 福昕录屏大师 网址:https://www.foxitsoftware.cn/REC/ 这款软件给我的第一印象就是界面简洁,操作起来很直观。它支持全屏录制,也支持区域录制,这对于我这种需要同时录制PPT和老师讲

【干货分享】基于SSM的体育场管理系统的开题报告(附源码下载地址)

中秋送好礼 中秋佳节将至,祝福大家中秋快乐,阖家幸福。本期免费分享毕业设计作品:《基于SSM的体育场管理系统》。 基于SSM的体育场管理系统的开题报告 一、课题背景与意义 随着全民健身理念的深入人心,体育场已成为广大师生和社区居民进行体育锻炼的重要场所。然而,传统的体育场管理方式存在诸多问题,如资源分配不均、预约流程繁琐、数据统计不准确等,严重影响了体育场的使用效率和用户体验。

Apache Tiles 布局管理器

陈科肇 =========== 1.简介 一个免费的开源模板框架现代Java应用程序。  基于该复合图案它是建立以简化的用户界面的开发。 对于复杂的网站,它仍然最简单,最优雅的方式来一起工作的任何MVC技术。 Tiles允许作者定义页面片段可被组装成在运行一个完整的网页。  这些片段,或Tiles,可以用于为了降低公共页面元素的重复,简单地包括或嵌入在其它瓦片,制定了一系列可重复使用

Apache HttpClient使用详解

转载地址:http://eksliang.iteye.com/blog/2191017 Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Http请求变得容易,而且也方便了开发人员测试接口(基于Http协议的),即提高了开发的效率,也方便提高代码的健壮性。因此熟

图书管理系统系统分享

分享一个图书管理系统,Java、SpringBoot、Vue和MySQL开发的图书馆管理系统 gitee项目地址:https://gitee.com/yuanmomoya/open-source-project/tree/master/books-management-system GitHub项目地址:https://github.com/yuanmomoya/open-source-pro

站长常用Shell脚本整理分享(全)

站长常用Shell脚本整理分享 站长常用Shell脚本整理分享1-10 站长常用Shell脚本整理分享11-20 站长常用Shell脚本整理分享21-30 站长常用Shell脚本整理分享31-40 站长常用Shell脚本整理分享41-50 站长常用Shell脚本整理分享51-59 长期更新

开源Apache服务器安全防护技术精要及实战

Apache 服务简介   Web服务器也称为WWW服务器或HTTP服务器(HTTPServer),它是Internet上最常见也是使用最频繁的服务器之一,Web服务器能够为用户提供网页浏览、论坛访问等等服务。   由于用户在通过Web浏览器访问信息资源的过程中,无须再关心一些技术性的细节,而且界面非常友好,因而Web在Internet上一推出就得到了爆炸性的发展。现在Web服务器已