主持人:2021 年,Go 语言的火爆有目共睹 。但我们今天说点别的,在三红老师看来,今天的 Go 语言还存在哪些问题?2022 年可能围绕这些问题而出现的趋势是什么?
李三红:曾经有人说,免费的午餐结束了,整个硬件来到了多核时代 。多核就意味着,程序需要强并发、高并发,Go 是一个面向协程的语言,把协程内建在了云原生层面去实现,极大提高了开发效率 。而且,Go 本身是一个静态编译语言,不存在 Run Time,但这是一个令人欣赏的取舍 。
我曾经也和 Go 语言的开发团队做过一些讨论,我觉得包括 Go 、Python 等语言在内,未来很重要的一个趋势,是如何充分发掘硬件性能,做好硬件加速,毕竟硬件性能的增长是趋缓的 。
主持人:随着 Rust 的兴起,函数式编程的这个概念重新火起来了,三红老师怎么看待 2022 年关于 Rust 和函数式编程的问题?
李三红:我觉得这是挺有意思的话题,函数式编程出来后,我们也看到一些讨论,好像函数式编程和 OOP 编程的程序员有时是有些互相鄙视的 。从我的调度看,函数式编程有特别多的优点,我特别喜欢函数式编程的“无状态” —— 数据不可修改,这是非常好的 。
在云计算领域里,有一个很重要的技术叫做 Serverless,Serverless 碰到的最大挑战是什么?就是冷启动和无状态 。如果是用 Java 开发,第二个请求进来后,Java 就必须重启一个 Java 虚拟机 。这就导致两个请求之间,我们很难保证启动速度 —— 这就是有状态和无状态的区别 。对于函数式编程来说,问题就简单了,直接 Fork 一下之前的进程就好了 。而且函数式编程的代码的可阅读性也更好,这点也非常棒 。
但函数式编程也有它的问题 。Twitter 团队早期用的是 Ruby,后面全部迁移到 Java 技术栈上,大部分用的是 Scala,Scala 就支持函数式编程 。但 Twitter 团队反馈说,Scala 用起来非常好,但也遇见一些问题:相比于 OOP,函数式编程会创建更多的对象,给内存管理带来比较大的压力,对性能也有一些影响 。
在我看来,2022 ,主流思想仍然会是面向对象,但函数式编程也有自己的优势场景 。
回到 Rust 本身来谈,我觉得它仍然会是 2022 的焦点,我们也在调研 Rust 。但 Rust 的是一个问题是,学习成本确实比较高 。Rust 暴露了很多底层细节给你,并没有全部封装起来 。对于开发者而言,能控制的越多,写起代码来就越需要细致考虑,把很多细节、原理想的比较明白 。这也算是追求性能的代价吧 。
主持人:前段时间,Rust 出了个审核团队离职的新闻,大家应该也都注意到了,三红老师觉得这种社区治理问题,会影响 Rust 在 2022 年的发展吗?
李三红:我觉得社区治理本身是非常关键的 。我们内部也在说,所有的开源项目本身有三件事是非常重要的:
第一点是开源实现;第二点是开放标准;第三点就是社区的治理,社区的治理支撑着整个语言的健康发展,Java 有几十年的历史,在社区治理方面,就确确实实有一些经验可以供 Rust 借鉴,但 Java 的情况和 Rust 又不太一样 。至少我们在看到审核团队离职这个新闻后,会想要继续增多一些对 Rust 的考察 。
主持人:李老师如何看待运维可编程化的趋势?
李三红:这个问题应该是在说可编程的基础设施 。我觉得这是一个比较正确的方向,但它可能存在质量完全不可控的问题 。云原生的 DevOps 讲究用可编程的方式去做,有代码提交,有所谓的 Commit Log,有变更记录,是通过软件工程的方式去控制 Infrastructure 的变化,否则就很难规模化复制 。
主持人:有好多同学也在问 Python,主要是寻求三红老师对 Python 工程师的个人发展建议,三红老师怎么看?
李三红:Python 在 AI 领域受关注度是非常高的 。我觉得 Python 本身只是个工具,如果从技术角度说,它的创造性空间可能确实是比 Java 要小,从我的经验来谈,要学好 Python 还是要关注它解决的问题域,包括 AI 算法、Tensorflow 生态等等 。关注通过 Tensorflow 怎么去规模化地解决问题,这可能比关注 Python 语言本身更重要 。
主持人:R 语言的发展前景怎么样?
李三红:我看到有些同学是直接从 R 语言转到 Python 的,但没看到过从 Python 转到 R 语言的,哈哈 。
推荐阅读
- 电影|北京12个区域将开展3天3轮核酸:奥密克戎疫苗临床首针完成接种 保护效果更好
- 红酒和红茶的功效,桑椹子和枸杞茶的功效与作用
- FFmpeg 开发——将视频 YUV 格式编码成 H264
- 高铁|浙江将建成全省“1小时交通圈” 湖杭铁路上轨试运行:时速350公里
- 冷空气|冷空气再来袭 全国多地将迎降温:未来三天南北方气温倒挂
- Linux之chown命令
- 钻石加工过程有哪些
- Windows操作系统|最重要Windows 11更新要来了:微软将敲定22H2时间 修复重大Bug
- 宋代足球小将主角?类似足球小将的动画片
- Win11上如何将HTML文件批量转换为PDF,Win11文件转换pdf的方法
