编者按:在过去的十年时间里,软件开发行业已经发生了非常大的变化。过去,程序员需要在大学或工作中花费好几年时间才能学习掌握一些编程知识,熟悉了解一些昂贵的服务器性能,而现在,只需几周时间就能搞定一项网页开发编程语言了。基于人工智能生成的代码,为整个行业带来了颠覆创新,也让我们处在了下一代范式快速转型中,身处在这个拐点上,我们不得不说,未来网页开发很可能会不复存在,以后甚至都不需要任何编程劳动力了。
“计算机想要在围棋上击败人类,可能还要等100年!”——《纽约时报》,1997年
“围棋大师被谷歌计算机程序击败!”——《纽约时报》,2016年
下面,就让我们来看看当机器人取代程序员写代码,会带来哪些范式转型吧。
转型一:WordPress
WordPress是在 2003 年 5 月 27 日发布的,在它丰富的插件和网站主题内容支持下,很多没有技术背景的创业者无需编写代码,就能推出自己的网站,WordPress 平台也因此很快便在全世界风靡起来。虽然这个平台存在一定的局限性,但是它依然占据了全部互联网网页开发 26.5% 的市场份额,那么剩下的 73.5% 的市场份额会是什么样呢?让我们再进入转型二来做进一步了解。
转型二:开源代码、Node 和框架
Node 一开始曾被广泛认为是一种玩具编程语言,但是它已经快速接管了网页开发,并且培育出了一个异常庞大的开源社区。对于那些还不太熟悉Node 的人,先简单介绍一下:Node.js是一个基于 Chrome JavaScript 运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。Node 最厉害的地方,就是让那些只开发客户端代码(前端网页开发)的程序员,可以无需切换编程语言就能编写后端代码。
不仅如此,Node 已经构建了一个令人难以置信的庞大社区,很多人都在为开源做贡献。现在,Node 基础设施和开源软件包都已经非常强大了,允许开发人员不仅仅去解决他们自己的问题,而且能够构建出一套为整个社区解决问题的方法。如今,使用 Node 开发软件产品就像是拼乐高积木,你只需花些时间把每块“积木”连接起来就可以了。
转型三:只需要一个应用程序接口,就能搞定 SaaS、BaaS、以及其他框架
你新开发的照片 App 需要面部识别功能吗?如果你想要解读人们在照片中的表情,又该怎么办?所有这些问题都可以靠一个应用程序接口搞定,事实上,如今你能想到的一切东西,都有一个应用程序接口(出于所有集中性非技术目的,应用程序接口就像是另一种乐高积木)。
那么,这具体意味着什么呢?现在,任何一款软件都能够通过开源工具、或是带有某些特定应用功能的应用程序接口开发出来。如果你给某位网页开发人员两周时间,告诉他们克隆市场上某款主流的消费者产品,他们至少可以使用相关工具,快速制作出一款基本版出来。
当然啦,开发一款应用程序和创立一家公司是两回事儿,但有一件事不可否认的是,现在独立程序员的生产力已经变得十分惊人了!当然,我们并不是说过去的程序员不行,毕竟现在的程序员也是站在巨人的肩膀上,才能做出一些成绩。
我们现在处在哪个阶段?
你需要一个网站?根本无需编写代码;你又需要一款高度定制的网页应用,来为用户提供一些专属功能或服务?Node 程序包提供的“玩具编程语言”就能轻松搞定。你还需要一款移动 App?写一个 JavaScript,然后就能从代码库里获得一款安卓和 iOS 原生移动应用。需要在你的应用里加入先进的机器学习技术?有应用程序接口来帮你搞定。你的公司找不到程序员?给 bootcamp 打个电话,他们有足够的编程达人。这一切是不是听上去都很不错?但实际上,我们能做的也只有这些了。如今程序员所接受的培训内容,其实都是最终能被机器人所取代的,一些强大的自动化工具完全可以智能生成代码。
未来,利用开源软件包、强大的开发工具和混合框架,企业只需招聘一些毕业生,短短 4个月时间就能学会如何编程,这在今天是难以想象的,只要有了商业想法,任何人都能轻松打造出一款高性能、可扩展且可维护的应用程序。
目前,已经有公司(比如 codefree.co)开始提供相关服务,允许没有编程背景的人无需写任何代码就能开发出一款个性化的网页应用;还有公司利用机器学习技术帮助企业开发、设计东西。尽管现阶段依然存在一些定制化问题,但相信随着时间的推移,各种问题都会逐步解决。
我们要到什么时候,才能看到人人都会开发程序?
显然,我们并不是说要让每个人都能轻松开发程序,如果说有 1000 个程序员使用开源程序包(乐高模块),总是要有一个人去开发源程序。我们需要教授人们如何构建乐高模块,需要更多工程师,而不是那些“打补丁”的人。所以从这个角度来看,如果你只想招聘一些毕业生,花 4 个月时间是根本无法做到的,别说 4 个月,可能 4 年时间都难以实现。
因此,我们需要鼓励更多程序员提升自己的技能水平,深入学习人工智能、虚拟现实、增强现实、计算机视觉、以及机器学习等技术。这些都是未来程序员所必备的技能,但是今天已经起步了,凡是不关注这些技术的人或企业,几年后可能会就要花更多成本去学习。
网页饱和了,移动也饱和了,你能想到的商业想法,市场上早就已经有三、四款同类产品了。所以,现在摆在我们面前的,是要去尝试解决更难的问题,掌握更强大的技能。
现在我们该怎么做?
教育是唯一的“出路”,相对于快速的市场发展速度,传统教育机构其实已经非常滞后了。如果你是一个企业老板,可能现在得想想如何去培训你手下的技术人员,在这方面,谷歌已经开始这么做了。假设你是一个网页开发人员,如果还是把重心放在 JavaScript、Ruby on Rails、或是 PHP 这些编程语言上,可能现在需要做些调整了。尝试学习机器学习或计算机视觉技术,虽然可能目前不会立即给你带来丰厚的收益,但至少能确保未来你不会被淘汰。