论坛5 | We. Developers. 王猛 「机器·人」



  • 时间: 2016年7月28日
    发言人: 王猛| fir.im CEO
    主题: 机器·人


    各位好!

    我是第一个来讲的,压力比较大。其实我这个题目起的比较大——机器和人,这个主题我们讲几天都讲不玩。但是PPT做了一半,要再改可能大会也不愿意了。我前几天晚上被主办方逼着我写作业,终于把它完成了。今天可能有一些点,我还没有形成非常好的结论。而且我相信大家都有这样的感觉,就是每过一段时间回过头来看,当时的我真傻。我今天的很多观点肯定也是这样,过一段时间也会发现我当时怎么会这样想。如果大家有什么疑问或者说对我的观点有持反对的意见,也欢迎大家随时打断我,好不好?我们开始。

    我是2006年开始参加工作的,到现在有十来年了,所以这个副标题看着,怎么讲?有些托大的意思。我是一个十年的IT从业者,对自动化的一些思考。我在2014年创办了一家公司叫 fir.im,这家公司是做应用内测分发,还有日志bug崩溃、分析监管,以及现在正在做的自动化运维的服务叫做 flow.ci。在做这些过程中,包括我之前换了很多工作,做了很多事。但是自动化的事情一直在来回的纠结,来回的思考。就是我们到底要做成什么样的,这个世界会怎么变化,就像刚才说的下一个革命会发生在哪儿?
    我是一个程序员,但是是一个二手的程序员,怎么讲这个二手呢?因为我之前是设计师。从毕业开始主要是做设计,大家看我都是一身黑白灰的这种设计路线。

    0_1470722531077_upload-d89710e4-11b7-409d-9255-b9227e0ca1df

    先看这张PPT,这是我当时给路易威登做的全球的Flash网站,现在我特别自豪的把它拿出来炫一下。这个应该是在07、08年的时候,当时搞了一堆明星,我现场秀一下英文。每一个都有一个明星代言,代言每一个城市。我跟大家学一下巩俐。因为我一遍一遍在听她们的声音,在调每一句的细节。“Hello, I’m Gong Li, come with me, follow walk in Beijing”这句话一直在我的脑海里面转,到现在还记得特别清楚。

    我之前设计师做的好好的,怎么就成了一个程序员呢?大家也可以猜一下,我为什么变成了程序员?不是水平差,水平还可以。其实就是一个字“懒”,这个懒字怎么讲,我开始胡搅蛮缠解释一下,小舒服或者叫小束缚,这个字是贬义的。但是就是因为这个字人类的进步才得以靠它推动,它是人类进步的原动力。如果不是因为这个懒,我们就发明不了各种工具,甚至直立行走都不可能实现。如果我们再加上下面的小标题的话,我觉得大家可以把平时自己的懒开脱一下。

    回答刚才的问题,我为什么从设计师变成了程序员。我当时在做一个Flash的项目,这个项目是给政府做触摸屏系统。我相信大家都见过类似的系统,无论是在车站或者是在政府的办事大厅,一进门会见到这样一个系统。其实这个系统非常简单,就是一个可触摸的屏幕跑一个Windows,然后里面跑一个Flash,然后一套卖的老贵。这些政府的领导可以点点看看管辖范围内的地图、风土人情,还有领导同志们跟父老乡亲切的握手,领导看完会特别的高兴,所以这个还是很有市场的,虽然用途不大。我就是在做这样一套系统,每一个市区县他们都要上这样的系统,当时我们做Flash比较陈旧的技术,每一帧放不同的文字,每做一个系统打开源文件,替换里面的文字和内容等等这些东西,一套系统大概要做两三个月的样子。我做了两个系统以后,我发现这样的效率太低了,还是这个字嘛,懒。我想能不能用更好的办法、更有效率的办法改变一下。

    后来我又来了一个项目,我用了大概两个月的时间我把它变成了一个动态的Flash,这个并不是大家理解的或者是非程序员的理解只要动就是动态。动态是动态的将各种素材、资源、文字、声音、视频加进来这样的一个机制。大家觉得这个不是必需的吗?难道不是这样的吗?其实当时真不是这样的。后来我把系统改成动态以后,有一个最直接的结果,这个结果是什么呢?就是除了我之外,其他所有的程序员都被公司裁掉了。很残酷,但是现实就是这样的,为什么呢?因为再也不需要这些做Flash的人了,因为公司的行政和财务甚至销售都可以做。他们按照我的规则和格式把相应的资源放上,这套系统就已经完成了,本来两三个月现在一个礼拜就完成了,所以其他的人不需要了。我也因此工资直接翻了一番,然后还得了公司的内部专利,专利的意思就是说不管我有没有参与接下来的项目,只要公司卖掉一款这样的系统,我就会从中分成,收我的专利费,这样很爽。然后我也是从那个时候开始才认识到原来程序是这样的。在这之前,因为我也是学计算机的。但是在学校里面的那些理论啊、链表啊和数据结构之类的,我不知道它们能干吗,我只知道我可以做一个算法或者我可以写一段脚本。但是在现实当中的意义是什么呢?我之前理解不到,自从做了这事,我理解到了。而且我也是从那时候开始下定决心要做一个程序员。

    我们的标题叫自动化,当然这个标题又起大了,可能会文不对题。我对自动化的理解是这样的,自动化分两个阶段,第一个阶段就是利用能源取代单调高频的人力行为。我们先看单调高频的人力行为指的是什么,比如说骑自行车和划船,比如说我们在电视上看到奴隶社会、封建社会被奴役的人们做的事情大部分都是单调高频的人力行为。前面加上了一个用能源替代,意思就是说后来的蒸汽机、汽车、电动车各种各样的,包括我用的这两张图,一个是机械臂,另一个是缝纫机,这两个很有意思。它们也经历了无数代的变革,但是它们还没有脱离第一个阶段,就是说用能源和固定的机械编程去取代人力行为,这是我理解的第一个阶段。

    0_1470722576890_upload-640d1a7e-35e3-4e40-802a-61d0afc3700c

    第二个阶段看起来比较酷,刚才王渊命也说了自动化、机器和人是在科幻里面看到的东西。我用了两张海报,第一个是《机械姬》,机器人通过各种手段、花招终于逃出来到人类社会里面。

    0_1470722589827_upload-bbc09c81-6c6b-4f45-9d6e-cb13b2a81825

    第二个是《I, Robot》。这两个机器人虽然都是比较负面的,但是我想通过这两个来说第二个阶段是什么。第二个阶段我理解的是,机器人可以根据外界的条件自主的完成动作。我认为第二个阶段有可能现在还很远。

    举个例子,虽然现在看起来已经是非常高科技的时代,各种智能。其实我们如果从一个更高的纬度来看,人类对自己,还有对外界全都还在原点的状态,还什么都不是。身体对外界的,现在我们的活动半径只有在这个地球上,我们要去火星都困难,火星现在还是在科幻片上才能看到。我们要去真的非常困难,但是在现在我们已知至少有140亿光年的宇宙当中,我们连个点都算不上。

    然后再说我们自己,医生给我们看病,看我们比如说哪儿不舒服,做B超或者其他的检查,看起来我们好像对自己的身体非常了解。但是有5%到10%吗?我觉得连1%都不到。我孩子现在刚两岁多,处在刚开始认知世界的时候,我发现他自从学会了问两个问题以后,他的认知能力飞快的提高,这两个问题是什么呢?他问我,爸爸这是什么。然后第二个问题是,它是做什么用的。我觉得这个太神奇了,他学会了问这两个问题,其他所有的事情,他都可以自己自主的去学习了。这个相对我们现在所谓的机器学习、人工智能,我觉得不是一点半点的差距,这是我对第二个阶段自动化的理解。所以我认定我们现在还是处在第一个阶段。

    我们说回程序员,我对程序员的定义是让其他人的工作和生活更自动化的工种。后面这些都能理解,但是前面这个定语“其他人的”怎么理解?我们平时在做的工作,虽然大家都是在写代码。但是大家做的事情有多少是跟自己有关的?比如说我们做一个叫外卖的或者我们在写一个银行的服务。我们看到程序员都在忙忙碌碌,但是程序员做的事情跟自己的工作、生活有多大关系呢?好像并没有那么多,所以我对它的定义是程序员是让其他人的工作和生活更自动化一点。

    第一个是写代码,这是他的工作,然后第二个就是别的,这里面的别的有什么呢?比如说大家平时都非常熟悉的,编译、打包、测试、部署等等这一系列的东西我都把它叫别的,因为这些别的占用了你非常多的时间。我们在写代码,我们尽力改变我们的生产效率的时候,我们的工作效率并没有多大的提高,因为后面那些别的占用了我们太多的时间,这是程序员或者是现在这个阶段。我理解的第二个阶段程序员就是写代码,那些别的就让别的去做吧。所以现在我们也在做这样一个服务,就是把其他那些别的都能自动化掉,我们在尝试这样的改变。

    0_1470722628280_upload-a5f871e9-ea6f-4c7c-baf5-3dbea9e9aabc

    这张图是苹果5的工程设计图,当然是简版的。大家看里面的每一个细节,不管是屏幕、摄像头、厚度、宽度,每一个细节都被苹果标记的非常详细,苹果就是做这事的。我们知道苹果在做手机,但是手机真的是苹果做的吗?好像苹果只是把它设计出来了,手机是富士康做的,对不对?所以我就基于这个发散了很多的想法出来。

    比如说软件开发是不是也是这样?当然这个之前IBM已经在很多年以前尝试过,从UML这样的工具发明出来以后,我们要把软件自动化、模块化。我的想法是,我们能不能通过一种方式把开发模块化。

    0_1470722647108_upload-4851ed88-8708-4892-9b94-07f0de4b9195

    这张图很有意思,我之前看过一个电影,但是忘记了叫什么名字,那里面讲的是一个程序员每天在玩游戏,他玩的是什么呢?就是类似这样的一个3D游戏,然后程序员整天上班拿手柄开始玩,就类似于俄罗斯方块那样,把一个块放到一个地方,然后系统告诉他你是对的还是错的。如果答对了,然后系统就会分析他的思路,他在玩游戏的思路,把这个思路转换成算法并且转换成软件,是这样一个过程。我对这个过程特别好奇,然后我也希望我在有生之年看到这样的事情发生。我们在写代码其实就是要让机器知道我们的意思,按照我们的意思去执行固定的动作。如果我们能换一种表达方式,而不是通过键盘去敲代码,而是通过玩游戏或者是其他的方式去开发,那会是什么样的情况呢?

    所以基于这个,我有非常多的想法出来,然后我们现在也正在去实践。比如说我们内部有一个小的项目,就是能把软件拆分成无数份,一直拆分到什么样呢?就是所有的模块之间没有任何耦合的情况。就是我输入就可以了,你不需要关心整个软件在做什么。虽然我们像苹果那样,我们花了很长的时间在设计上,在界面设计上,在软件设计上。但是现在开发的模式是一个软件公司招了一大堆的程序员,并且把开发团队或者是程序员团队认为是公司最宝贵的财富。

    我们换个思维来想,苹果是不是把富士康作为他们最宝贵的财富来考虑呢?好像不是这样的,所以极有可能在将来的某一个时间,我们也会发生这样的变化。

    当然对软件的开发,一半是艺术,一半是代码,就像之前《黑客与画家》提到的那样。比如说我们看似它是一个非常简单,用户体验好或者怎么样,是非常简单的表达。它后面会有非常复杂的丰富的逻辑,有的程序员可能要花几千行代码去处理它。但是有的艺术家式的程序员,几行代码就可以解决一个问题。是不是将来那些只会写代码,只是能把一个事情做好的那些程序员,会被那些艺术家所取代。

    我的意思是说,这些艺术家会不会像设计一个软件界面或者像设计一个iPhone那样去设计整个软件框架呢?如果他们把这些设计好了,最后剩下的是输入2返回3,这样非常简单的处理逻辑,可能大部分的工作机器就可以帮你完成了,然后其余很小的一部分才是人去做的。那大部分的程序员,是不是就要被刚才我提到那样的,我之前一起做Flash的同事那样被公司或者是被时代淘汰掉。

    所以这是我很小的结论,我一直在公司里面跟我的同事们讲,如果你现在的工作越像是机器,你在将来就越可能被机器所取代,我的演讲就是这样,谢谢大家。


登录后回复
 

与 青云QingCloud 社区 的连接断开,我们正在尝试重连,请耐心等待