宅神进化史(从图灵变辣鸡)——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

相关文章

Debezium 与 Apache Kafka 的集成方式步骤详解

《Debezium与ApacheKafka的集成方式步骤详解》本文详细介绍了如何将Debezium与ApacheKafka集成,包括集成概述、步骤、注意事项等,通过KafkaConnect,D... 目录一、集成概述二、集成步骤1. 准备 Kafka 环境2. 配置 Kafka Connect3. 安装 D

linux进程D状态的解决思路分享

《linux进程D状态的解决思路分享》在Linux系统中,进程在内核模式下等待I/O完成时会进入不间断睡眠状态(D状态),这种状态下,进程无法通过普通方式被杀死,本文通过实验模拟了这种状态,并分析了如... 目录1. 问题描述2. 问题分析3. 实验模拟3.1 使用losetup创建一个卷作为pv的磁盘3.

MySQL8.2.0安装教程分享

《MySQL8.2.0安装教程分享》这篇文章详细介绍了如何在Windows系统上安装MySQL数据库软件,包括下载、安装、配置和设置环境变量的步骤... 目录mysql的安装图文1.python访问网址2javascript.点击3.进入Downloads向下滑动4.选择Community Server5.

CentOS系统Maven安装教程分享

《CentOS系统Maven安装教程分享》本文介绍了如何在CentOS系统中安装Maven,并提供了一个简单的实际应用案例,安装Maven需要先安装Java和设置环境变量,Maven可以自动管理项目的... 目录准备工作下载并安装Maven常见问题及解决方法实际应用案例总结Maven是一个流行的项目管理工具

10个Python自动化办公的脚本分享

《10个Python自动化办公的脚本分享》在日常办公中,我们常常会被繁琐、重复的任务占据大量时间,本文为大家分享了10个实用的Python自动化办公案例及源码,希望对大家有所帮助... 目录1. 批量处理 Excel 文件2. 自动发送邮件3. 批量重命名文件4. 数据清洗5. 生成 PPT6. 自动化测试

10个Python Excel自动化脚本分享

《10个PythonExcel自动化脚本分享》在数据处理和分析的过程中,Excel文件是我们日常工作中常见的格式,本文将分享10个实用的Excel自动化脚本,希望可以帮助大家更轻松地掌握这些技能... 目录1. Excel单元格批量填充2. 设置行高与列宽3. 根据条件删除行4. 创建新的Excel工作表5

深入理解Apache Airflow 调度器(最新推荐)

《深入理解ApacheAirflow调度器(最新推荐)》ApacheAirflow调度器是数据管道管理系统的关键组件,负责编排dag中任务的执行,通过理解调度器的角色和工作方式,正确配置调度器,并... 目录什么是Airflow 调度器?Airflow 调度器工作机制配置Airflow调度器调优及优化建议最

Redis多种内存淘汰策略及配置技巧分享

《Redis多种内存淘汰策略及配置技巧分享》本文介绍了Redis内存满时的淘汰机制,包括内存淘汰机制的概念,Redis提供的8种淘汰策略(如noeviction、volatile-lru等)及其适用场... 目录前言一、什么是 Redis 的内存淘汰机制?二、Redis 内存淘汰策略1. pythonnoe

Golang操作DuckDB实战案例分享

《Golang操作DuckDB实战案例分享》DuckDB是一个嵌入式SQL数据库引擎,它与众所周知的SQLite非常相似,但它是为olap风格的工作负载设计的,DuckDB支持各种数据类型和SQL特性... 目录DuckDB的主要优点环境准备初始化表和数据查询单行或多行错误处理和事务完整代码最后总结Duck

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学