架构师(2021年3月)

架构师(2021年3月)

发布于:2021-03-08 08:00
本期主要内容:Java on Truffle:实现真正的元循环;建在大数据上的郑州地铁;50年长盛不衰,SQL为什么如此成功?
下载此书

卷首语:从 Rust 火爆出发,聊聊开发者如何选择编程语言

作者:王学智


近年来,随着移动互联网、云计算、大数据、人工智能、IoT 领域的快速发展,计算系统、计算模式都发生了巨大的变化,编程语言的发展也进入了一个新的爆发期。新的优秀编程语言不断涌现,在各种产业场景和应用领域发挥巨大的力量,如由 Mozilla 于 2010 年推出的 Rust 编程语言。


自发布 1.0 版本后,Rust 连续四年成为开发者最受欢迎的编程语言。近期,随着 Rust 基金会的正式成立,各个大厂上演了 Rust 人才争夺大战,媒体将 2021 年称为"Rust 年”。那么,Rust 是不是开发者首选编程语言呢?这里我就从 Rust 出发来聊聊开发者如何选择编程语言,要不要去学习新的编程语言。


人们之所以不断需要新的编程语言,或者传统编程语言需要不断演进,一方面是因为人们面临的计算问题、计算平台的不断变化和演进,相应的软件开发问题也随之不断变化,需要编程语言提供更加有效的解决方案;另一方面,商业组织在不停地定义和构建新的商业场景和技术生态,一款专门设计的编程语言往往可以跟操作系统、编译器、开发框架、开发环境和配套工具链等形成合力,提高开发体验,更好地服务于商业组织的业务目标和策略,构建差异化竞争力,使得整个软件生态对于开发者和普通用户更具粘性。因此,需要从技术和生态角度去评估编程语言的选择。


首先,编程语言是提升软件开发效率、增强软件使用体验、解决软件开发中特定问题的重要技术手段和工具。我们可以看到,Rust 语言通过变量的生存周期、所有权机制等,在不引入垃圾收集器的情况下确保内存安全,被普遍认为是一种关注内存安全的系统编程语言,这也是各个科技公司使用 Rust 开发底层系统软件的技术出发点。在系统编程领域中,Rust 可作为 C/C++等传统系统编程语言的现代替代选项。但在应用编程领域,如终端应用、Web 开发、AI 编程等,对开发效率和编程体验要求较高,而 Rust 的生命周期、所有权机制等概念使得其学习曲线较高,开发者负担大,相比于 Java、Kotlin、Swift、JavaScript、Python 等应用编程语言就心有余而力不足了。


其次,编程语言又是软件生态的入口,直面开发者,在打造和控制软件生态方面发挥着无可替代的关键作用。对于 Rust,目前已有数百家公司在软件生产中使用,如 Dropbox、Yelp、Cloudflare 等,谷歌也在提供资金号召开发者使用 Rust 重构各类核心开源软件,新的服务器端 JavaScript 运行时 Deno、AWS 的 Firecracker 虚拟机等也采用 Rust 构建。随着 Rust 基金会的成立,相信其软件生态构建速度将会加快。


但需要注意的是,Rust 还未出现杀手级的典型应用/框架,相较于 C/C++的系统软件生态仍有漫长的路要走。在应用编程领域,科技公司和社区通过编程语言与框架等的配合已构建了成熟、繁荣的软件生态,如苹果通过 Swift 语言和 iOS 操作系统、LLVM 编译器、XCode 开发环境、SwiftUI 编程框架等配合,给苹果应用开发者带来了更安全、易用、高效的开发体验。谷歌开发的 Dart 编程语言,通过结合 Flutter 跨平台 UI 开发框架,让终端应用开发者可以在安卓、iOS、Web 端甚至 PC 端进行 UI 开发,实现一次开发、多平台运行,可降低终端应用多平台开发成本。


总之,编程语言的选择需要从技术和生态两个维度考虑,开发者需要根据面临的业务场景和应用领域选择合适的编程语言,因为没有一种编程语言可以包打天下。

目录

热点 | Hot


估值飙升至 280 亿美元!大数据独角兽公司 Databricks 再获 10 亿美元融资


Rust 基金会正式成立,五大科技巨头将投入百万美元支持项目开发


理论派 | Theory


Java on Truffle:实现真正的元循环


推荐文章 | Article


应用上云 2 小时烧掉近 50 万,创始人:差点破产,简直噩梦


建在大数据上的郑州地铁


放弃大厂高薪的程序员,涌进体制内


观点 | Opinion


50 年长盛不衰,SQL 为什么如此成功?


专题|Topic


InfoQ 编程语言 1 月排行榜结果出炉,我们有五个重要发现


评论

发布
暂无评论