近年来,伴随着智能手机的普及、数字市场的繁荣,我们身边正发生着日新月异的变化。作为一个与各领域关系密切的行业,软件开发模式又在发生着那些转变呢? 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的大规模开发,新兴企业的小软件开发等不仅强调“不持有”,还非常重视开发速度。雅虎发明了一个词叫“爆速化”,是否能在竞争中占得先机,速度确实非常关键。
从这个角度来看,所谓的系统集成商,他们的工作真是有点过时了呀。即使过时了但仍然继续工作还是完全放弃?我不知他们该如何选择。但是,可以肯定地说,他们与那些真正能够发挥实力和能力的工程师的差距将越来越大。