编程语言将走入怎样的 2022


编程语言将走入怎样的 2022

文章插图
 
本文是“2021 InfoQ 年度技术盘点与展望”系列文章之一,由直播内容整理而成,重点聚焦编程语言领域在 2022 年的核心趋势展望,希望能帮助你准确把握 2022 年编程语言领域的核心发展脉络,在行业内始终保持足够的技术敏锐度 。
“InfoQ 年度技术盘点与展望”是 InfoQ 全年最重要的内容选题之一,将涵盖架构、AI、大数据、大前端、云计算、数据库、中间件、操作系统、开源、编程语言十大领域,后续将聚合延展成专题、迷你书、直播周、合集页面,在 InfoQ 媒体矩阵陆续放出,欢迎大家持续关注 。
本期直播嘉宾:
李三红,阿里云程序语言与编译器团队负责人,在虚拟机领域拥有 10+项技术论文/专利 。活跃于 JAVA 技术社区,GreenTea JUG(Java User Group) 组织者,QCon, JVMLS,JavaOne, JPoint 等国际会议受邀嘉宾 。VMIL'18 程序委员会委员,Java Champion, Java 标准执行委员会(JCP-EC)成员,GraalVM Project Advisory Board 成员 。
 
主持人:三红老师,我们现在能够看到整个编程语言领域,在 2022,会有什么核心的发展趋势吗?
 
李三红:首先感谢一鹏的介绍,我们先聊第一个话题 。我开播之前也做了一些功课 。IEEE 发布了编程语言的排行榜,我在看 Top 5 编程语言的时候,很有感触,因为那个榜单基本上能全面反映我们阿里云内部使用语言的基本情况 。我说一些具体的例子,比如 C 和 C++,大家都知道,阿里是 Java 大户 。我们很多线上应用都用 Java 写的,但实际上,像飞天、盘古存储、OceanBase、PolarDB 等应用,很多都是用 C++ 写的 。Python 我们用的也蛮多的,当然主要是在 AI 领域,和 Tensorflow 相关的 。
 
主持人:Java 在整个 21 年的版本更新速度很快,从 Java16 一直更新到 Java18 。那么到了 2022 年,Java 的开发者应该去注意哪些趋势呢?
 
李三红:今年有几个事情正在发生 。在 Java 里,有个概念叫做 long term support,就是 LTS 版本,所谓的长期支持版本 。此前,Oracle 规定的是长期支持版本三年更新一次,但现在已经改成两年一次 。两年一次的 LTS 版本更新意味着,我们可能要付出更多的代价跟进版本支持 。尤其是做企业架构、Java 解决方案的同学要关注下,据我所知,国内大部分团队还停留在 Java8 。
 
主持人:有一个同学在弹幕提问:Node.js 还有前途吗?三红老师怎么看?
 
李三红:我觉得,任何一个语言都是在特定领域里,解决一个专业问题,没办法武断地说有没有前途 。我举个例子,Node.js 即便在数据中心也有一定应用,在 Serverless 场景中也是有用的,但是 Node.js 本身是单线程模型,如果要替代 Java,要走的路还是蛮长的,但这不妨碍 Node.js 在它目前的领域保持出色的表现 。
【编程语言将走入怎样的 2022】 
主持人:InfoQ 今年在官网上也发起了一个编程语言排行榜,数据显示,截止到目前,使用 Java 语言的人仍然是最多的,大多数人对 Java 的生态也是最满意的 。三红老师觉得未来是否会有某些语言威胁到 Java 的统治位置?会是 Go 吗?
 
李三红:Java 不单是生态好,在运维、可观测性、可监控性方面都是很优秀的 。如果我们对比 Java 和 Go,确实业内在大量的尝试使用 Go 。但从阿里实际的应用场景来看,Go 还是主要用在了 Kubernetes 生态里面 。我们这边也有项目尝试过用 Go 替代 C++,但碰到了比较大的问题,C 和 C++ 的应用场景大部分是对性能敏感的场景,Go 的主要问题是它会因为 GC 导致暂停,继而影响上面所有的东西 。
 
主持人:大家普遍认为 C++ 的学习成本最高 。未来,在编程语言的设计上,会出现降低学习成本这样的一个设计趋势吗?
 
李三红:首先我觉得,编程语言是在塑造你对事物的思考方式,就像 Java ,本质上是面向对象,你需要深刻的掌握 OOP 。那么谈到学习成本,假设我们没有很好的掌握 OOP,那么学习 Java 和 C++ 就比较困难 。一旦你理解了编程语言本质的思维模式,学习就会变得简单 。
 
主持人:那么降低学习成本,与放弃部分性能,存在必然的联系吗?
 
李三红:从我的角度看,可能用开发效率来替换学习成本这个词更合适些 。当你在要求极致性能的时候,可能会损失开发效率 。我举一些例子,比如 Java 的 Unsafe API,它就提供了极致的性能,但它也可能导致 Java 虚拟机莫名其妙的崩溃,开发成本是非常高的,生产效率是不高的 。我觉得生产效率和性能确实是个平衡关系,要考虑取舍问题 。


推荐阅读