千行百业的数字化转型如火如荼,而与业务发展高度相关的软件与应用总是慢了半拍,专业开发人才的缺口越来越大。
波士顿咨询发布的报告显示,美国每万人AI人才密集度约为中国的72倍,中国除互联网和金融外的其他行业,数字化转型进度并不乐观。
痛点爆发处,机遇降临时。一夜之间,低代码甚至零代码开发火遍大江南北。根据Gartner的预测:2021年全球低代码开发市场总额将达138亿美元,比2020年增长22.6%;2023年大型企业活跃个人开发者至少是专业开发人员的四倍;到2024年,低代码将占应用程序开发活动的65%以上。
尽管前景确定,但眼下虚火正旺。在轮番炒作的背后,有一个与低代码开发关系密切的因素却被广泛忽视——推动降低门槛最核心的力量,其实是编程语言的变革。
该来的终会来。近日在上海举办的活动上,七牛云CEO、Go 语言发明人许式伟与Go 语言贡献者共同发布Go 1.0版本及Go 发展路线图;Go 开发者基金会也正式启动,为开发者提供资源、资金以及技术上的支持。
也许,源头活水才能解需求之渴。
软件自动化时代催生新的编程语言
第一次工业革命拉开机械自动化的序幕,其背后的逻辑是“硬件即程序”。彼时最大的问题是“出厂即巅峰”,设备或产品的功能一旦明确,很难再进行后续的迭代升级。
直到第三次工业革命出现电子计算机,“软件定义程序”方大行其道。过去二十多年,软件自动化的浪潮率先在消费互联网领域发力,改变了人们的日常生活;而未来几十年,产业互联网将重塑每一个行业,软件自动化会进入崭新阶段,与云计算、大数据、人工智能等技术协同作用,构建前所未有的数字新世界。
七牛云CEO、Go 语言发明人许式伟
就角色定位而言,编程语言是软件自动化的基石;而从更宏观的视角看,“编程语言是更高阶的文明密码,会成为人类文明的底层基础设施”——Go 语言发明人许式伟一语中的。
产业互联网向纵深挺进,对编程语言提出了新的要求。工程技术的知识密度非常高,跨领域的工程技术应用更是不胜枚举,如果不能用有效的编程语言精确表达、融会贯通,行业数字化转型就会举步维艰,核心经验的传承更无从谈起。
真理可能掌握在少数人手里,但语言唯有多数人使用才能凸显价值。从推进产业互联网发展的角度看,真正降低学习门槛,不断扩大开发者数量,是新一代编程语言必须担负的使命。
一方面,深谙业务运行规律和操作细节的人员,未来会更多承担起开发软件与应用的职责。能否把他们转变成“程序员”,是衡量编程语言商业潜力的重要标准。
另一方面,教育与实践的脱节,也是制约开发者队伍增长的主要因素。填平学与用之间的鸿沟、吸引青少年成为程序员的后备军,是决定编程语言发展前途的原动力。
“三位一体”推动人才培养机制创新
正是在上述背景下,构思独特、顺应大势的Go 应运而生。
Go 在2020年7月刚问世时,其slogan是“为数据科学而生”。而在Go 1.0版迈出商业化第一步时,slogan变成三位一体的“for engineering, STEM education, and data science”。
“for engineering”致力于让工程师可以使用简洁、容易掌握的语言去工作,这在纷繁复杂的工程技术领域是非常重要的进化。
“for STEM education”希望青少年从小学就能学习一门工程语言,以便于在将来的工作中延续使用。目前,儿童接触的第一门编程语言通常是Scratch,很难终身受用。
“for data science”让工程师和数据科学家可以用相同的语言去对话,这在以数据驱动创新的未来尤为重要。
定位的外延和内涵发生变化,很可能引发类似的质疑:“三位一体”是否意味着Go 失去了最初的焦点?
遥想当年,乔布斯也提出过iPhone的“三位一体”,即宽屏的 iPod、革命性的电话和绝佳的互联网访问体验。虽然Go 与苹果不能简单类比,但跨界融合的精神内核却彼此相通。
Go 要打通两个过去很难产生联接的领域:一个是工程界与STEM教育界,另一个是工程界与数据科学界。前者的融合可以从源头上解决“会编程的工程师”稀缺的问题,后者的互通则为数据科学家的批量诞生奠定坚实基础。
显而易见,产学研一体化正是人才培养体系革新的重要路径。但看到趋势并不等于能躬身实践,Go 凭什么可以做到知行合一?许式伟认为,与其他编程语言相比,Go 主要做对了两件事:
其一,对于初学者,Go 隐蔽了工程的复杂性。他们不用一开始就去理解什么是函数、模块等工程上的概念,只需将精力聚焦于要解决的实际问题,入门时的最大障碍由此化于无形。
其二,Go 使用更加接近自然语言的表达方式。以猴子吃香蕉为例:当猴子运动的时候,只要检测香蕉是否和猴子碰撞即可;如果是,就代表猴子吃掉了香蕉,游戏结束。整个代码非常简单,不会编程的人也能看懂,这就是Go 的魅力所在。
学习门槛的大幅降低,让接受STEM教育的孩子可以终身使用自己熟悉的编程语言,在工作中学以致用,人人都有机会成为工程师;而数据科学家最大的人才储备库正是“海量”的工程师,环环相扣的人才培养链条就这样自然形成。
Go 生态进化的终极路径
Go语言诞生于2009 年,直到 2012 年4月才发布1.0版。Go 1.0的推出节奏比Go更快,一年多就启动了商业化进程。
提速的底气除了源自对Go 语言内在价值的信心外,开源与社区生态的构建是最大的推进器。
Go 开发者基金会是构建生态的推进器
现代语言学之父索绪尔认为:语言的单位都是一定系统里的成员,本身是什么要由它在系统里所处的地位及与其他要素的关系来决定。对编程语言来说,社区就是最大的系统,其价值呈现要历经多元生态的反复淬炼。
据《IT创事记》了解,Go 将采取兼容并蓄的方式,在多个领域的既有社区生态中寻找“靠山”。
在工程领域,Go 选择兼容 Go,基于“语言特性最小化”原则,在Go语法特性上加最小的功能。目前,Go是增速最快的语言之一,而Go 的目标是超越Go。
教学领域排名第一的Scratch,也是Go 的“觊觎”对象。Go 在引擎能力和设计方面兼容Scratch,并在此基础上实现自动化代码转换。Scratch拥有丰富的师资和教育资源,是Go 跻身教学市场的铺路石。
数据科学的翘楚Python,是“最难啃的骨头”,Go 正在尝试直接import Python的包,用来弥补Go 和 Go 在数据科学社区生态的薄弱环节。这一构想还在实施中,落地之期不远。
如果说社区生态是编程语言的生存基础,那么杀手级应用则是其兼济天下的终极路径。Go的杀手锏体现在后端编程,云计算的Docker、Kubernetes等基础设施都是Go的手笔。
在经历了较长时间的思考和探索后,Go 的杀手级应用最终锁定在工程与STEM教育的一体化,工程师培养体系的构建是其发力焦点。
海德格尔在《技术的追问》中,将对技术本质的解蔽归于把真带入美之中的产出,技术与艺术在某种意义上同根同源——STEM教育恰是技术与艺术融合的典范,Go 以此为突破口顺理成章。
许式伟并不讳言Scratch是头号竞争对手——在能力兼容的前提下“师夷长技以制夷”,并用工程语言的优势降维打击“玩具语言”,是Go 胜算的筹码。一旦在STEM教育上取得积极进展,基础人才库、工程师和数据科学家之间的正反馈就有望形成。
以梦为马的征程,还需要开源杠杆的加持。开源商业模式在产品研发、人才组织、漏斗机制等方面具备显著优势,更容易在较短时间内形成网络效应和垄断地位。Go 是开源的支持者和推动者,有机会快速占有程序员的心智,让培养人才的梦想插上翅膀。