分享 未来这五年,软件工程师如何安身立命? (上) ——Ruby 之父松本行弘谈《代码的未来》

lakuxin · 2013年06月21日 · 最后由 lakuxin 回复于 2013年07月04日 · 9499 次阅读
本帖已被管理员设置为精华贴

近年来,伴随着智能手机的普及、数字市场的繁荣,我们身边正发生着日新月异的变化。作为一个与各领域关系密切的行业,软件开发模式又在发生着那些转变呢?Ruby 之父松本行弘的新书《代码的未来》,将为大家揭开其中的真相。松本行弘眼中的软件开发行业的未来,到底是怎样的?总编辑伊藤健吾探访了位于岛根县的松江开源研究室。

Ruby 之父 / mruby 开发者 松本行弘@yukihiro_matz

Ruby 语言发明者,亦是亚洲首屈一指的编程语言发明者。现兼任网络应用通信研究所(NaCl)研究员、乐天技术研究所研究员、Heroku 首席架构师等。昵称“Matz”。讨厌东京,喜欢温泉。

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 伊藤:感谢您百忙之中接受我们的访谈。最近,我拜读了您的新书《代码的未来》,请您先谈一下代码以及软件工程师们的未来吧。

Matz:这还真是有点不好回答呀……不过,非常感谢您阅读拙著。

伊藤:在本书中,您详细叙述了您对各类开发语言、程序设计方法的过去、现在以及未来的看法。在此,想请您谈一下您是如何看待软件行业的现状的。它的本质是否发生了变化?软件开发的模式是否正在发生转变呢?

Matz:在书中我也提到过,预测高科技的发展趋势并不难,我认为,计算机领域在未来的一段时间里应该还会继续遵循摩尔定律发展。或许明年会出现可供实际应用的量子计算机,那样一来,迄今为止的一切可能都要颠覆重来(笑)。不过,根据摩尔定律,计算机的价格会更低、性能会更好、容量会更大,这些基本走向应该是不会变的。但是,这几年我已经感觉到方向开始发生变化了。这大概是因为,伴随着硬件的发展,软件开发势必也要进行一些调整。

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 伴随着多核技术和云计算的兴起,软件开发也在发生变化

Matz:大约 20 年前,我设计了 Ruby 语言(编辑注:1993 年开发),这门 20 年前开发的语言即使在现在的电脑上运行也依然能取得很高的性能。

这说明 20 年多年来,软件的运行环境没有发生什么实质性的变化,它们都在单一的电脑上运行。近年来,CPU 单核技术已经提升乏力,取而代之的是 CPU 多核分散处理技术。这样一来,此前开发的软件就失去了本有的优势。从这一点来看开发方法的调整势在必行。

(松本先生认为,软件的运行环境已经很多年没有变化了。)

伊藤:您刚刚讲的这些,在本书的最后一章“多核时代的程序设计”中也进行了总结吧?
Matz:是的。不仅是多核技术,云计算的发展状况基本上也是这样的。在计算机中有多个 CPU 的话即为“多核”,在网络中的话即为“云”。总之,预测软件开发的未来的关键词应该集中体现为“如何运用多台计算机”。

伊藤:那么,在引入了多核技术和云计算之后,您认为软件开发者应该如何改变工作方式呢?
Matz:就目前的变化来讲,这 10 年间,基于 Web 的开发不断增加,Web 应用的可扩展性很强,是一种适于分散设计的应用架构,所以熟悉 Web 的人,对多核和云计算的概念也会比较熟悉。与只了解通用机架构的工程师相比,他们应该更容易适应。

伊藤:在采访从事 Web 服务和智能手机应用开发的新兴企业时,我们感到,在这一两年,利用 PaaS 和云技术从事服务开发的工程师在快速增加。
Matz:是的。我也认为今后“公司在开发过程中不必购买主机的方式”会成为主流。而且,“不持有”这种思考方式不仅对开发很重要,对企业经营也会产生重大影响。

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

迈向“持有”不是资产而是负债的时代

Matz:以前,“持有”被认为是企业活力的源泉。拥有高性能通用机的公司能快速处理各种业务,而无法购买昂贵的通用机的公司只能兀自打着算盘……

但是,如今“未持有”的一方反而有利。配备计算机硬件的话,收回成本需要 5 年,这期间必须让机器充分运转、物尽其用。这种方式表面上看好像有利于压缩成本,但实际上使用旧计算机,会降低生产力,成本反而更高。

也就是说,现在我们已经步入“持有不是资产而是负债”的时代。如果配备最先进的设备,那些优秀的工程师就可以进行高效开发,但仍然有一些人还在使用 3 年前的旧机器,那也难怪仅仅编译就需要一个小时(笑)。Heroku 等云平台的诞生,使得开发中“持有者的优越感”荡然无存。

另一方面,“不持有”的好处也体现在了商务上和开发上。比如,受其影响出现了许多新兴企业。以前,想要创业必须具备一定数量的储备资产,用于向数据中心投资、向服务器租赁公司购买 10 台服务器等。然而,现在只需要使用 Heroku 即可,最初的 1 节点是免费的。这样一来,创业之初,除了进行开发,程序员们会花一些时间以外,几乎没什么风险和成本。

我曾经读过美国投资公司 Y Combinator 的创立者保罗•格雷厄姆写的一篇短文,其中有一段我深有同感――“现代的新兴创业公司的团队人数很少,只要能挣够供大家吃方便面的钱,他们便会开始新的挑战”。这一断言岂不妙哉!“不持有”的灵活性和快捷性,正是推动有能力的人不断挑战的后盾。这一趋势不仅只体现在新兴公司内,从前年开始,这股风潮已经影响到了一些大企业。

在美国,迪斯尼和百思买等正是利用 Ruby、Rails 和 Heroku,迅速地以低成本构建起了本公司的服务体系。此前,只属于投资公司的特权的“新服务开发的迅捷性”以及“开发的灵活性”已经不再由他们独享。

伊藤:日本的大企业、大开发公司的情况如何?
Matz:我没有在大企业中供职,所以无法正确分析他们的动向,但是从各种观点来看,大家基本上都持乐观态度。但是,作为一名旁观者,我认为从整体上来看形势不容乐观。

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

忽视了技术创新的“本质优点”的开发案例太多了

伊藤:您为什么认为软件开发的前景不容乐观?
Matz:传统的软件开发仍然是主流。虽说在安装 Web 服务的最终环节中使用了 Amazon 的云服务,但整个开发流程与过去没什么不同。通常仍然是由没写过一行代码的系统工程师来完成设计。一个软件开发团队动辄出动十人,这种情况很多见。

这与刚才所说的“不持有主机所带来的优势”完全相反。仅从皮毛上引入流行技术的开发案例并不少见。

我对“私有云”(又称内部云或企业云)感到无比失望。这是因为,云服务的最大优点就是在网络中使用多台计算机,而私有云的服务对象仅仅是公司内部的若干台计算机。这本质上不还是“拥有自己的主机”吗?这样可不行啊。

(松本行弘指出现在的软件开发“只是表面上吸收了先进科技的优点”)

伊藤:看起来是在追随最新的技术趋势,实际上却忽视了本质优点的案例非常多。松本先生所说的“暗淡的未来”的其他体现还有哪些呢?
Matz:如今,BtoB 的大规模开发,新兴企业的小软件开发等不仅强调“不持有”,还非常重视开发速度。雅虎发明了一个词叫“爆速化”,是否能在竞争中占得先机,速度确实非常关键。

从这个角度来看,所谓的系统集成商,他们的工作真是有点过时了呀。即使过时了但仍然继续工作还是完全放弃?我不知他们该如何选择。但是,可以肯定地说,他们与那些真正能够发挥实力和能力的工程师的差距将越来越大。

翻译:徐骞 本文翻译自 engineer type 对松本行弘的访谈 http://engineer.typemag.jp/article/matz

(转载自图灵社区:http://www.ituring.com.cn/article/45484

未来这五年,软件工程师如何安身立命? (下)http://ruby-china.org/topics/11943

匿名 #2 2013年06月21日

みなさん、こんにちは

刚才看排版还有点乱,现在就好了,赞!

#2 楼 @yukihiro_matz 松本様、ありがとうございます^^

#3 楼 @chinakr 唔……发现这里的 Markdown 语法和社区不太一样。还有点不熟,嘿嘿。请多指教!

感谢翻译

ところで、親しい ID を見ましたが、これは松本様本人ですか??

PS:看到 2 楼的 ID,我想 at 人骚扰一下。。。

#6 楼 @ywjno 我也很震惊,刚开始以为是有人假冒……你如果有想问的问题,我觉得还是可以骚扰一下滴~~~

#6 楼 @ywjno 你现在这样问好像不太好吧。以后人家都不敢来了。

#9 楼 @lakuxin 一直都觉得后面补的那些话都有些多余,不过真的是没有恶意只是表示下惊叹的心情啊。。

2 楼惊现...

非常不看好软件行业。假如你到时候还是只会写程序,哪怕写得再好,那么不用五年就将很难找到工作了

连工作都找不到还谈什么安身立命这么大的话题。

#12 楼 @bhuztez 那要会啥才有前途?

#13 楼 @jjym 学厨师吧,饮食业会长盛不衰的

#14 楼 @blacktulip 。。好吧。。干不下去就去蓝翔修炼几年

#15 楼 @jjym 搭班 当厨子是我的梦想 - -

#10 楼 @ywjno 明白你的心情^^

Matz 在 2 楼跟大家打招呼(他说:大家好!),大家是不是也回复一下比较好呀。白天的话用这句:こんにちは。晚上的话用这句:こんばんは。或者用英文回复也可以啊。

#19 楼 @lakuxin 都变成 Guest 了...

#20 楼 @bhuztez OMG,刚刚还是 Matz,好吧……

松本様、こんにちは

#21 楼 @lakuxin 刚才 2 楼的是 Matz 的本尊吗?

#2 楼 @yukihiro_matz 松本様、ありがとうございます^^

#24 楼 @skandhas 是的。刚开始他模仿你 +1,后来他改成用日语跟大家打招呼,再后来就变成 Guest 了,哈哈!

#12 楼 @bhuztez 个人觉得有个工作没有什么问题的。到处都需要码农,但是未来的工资水平要想提高,那么比较难了。。。

这门20年前开发的语言即使在现在的电脑上运行也依然能取得很高的性能。 什么毛线意思。。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号