为什么Rust连续三年成为最受欢迎的语言?
极客时间编辑部
讲述:丁婵大小:991.30K时长:04:14
为新产品选择编程语言是一项重要的战略决策。它会影响很多事情,并对招聘、文化甚至产品的可行性都有长期的影响。你需要考虑所选语言对于要解决的特定问题陈述是否可行,该语言能发挥多大的作用,有哪些成本优势以及解决问题的难易程度等等。日前,软件开发者阿什·穆萨(Ash Moosa)发文解释了他们为新产品选择 Rust 的原因。
穆萨的团队正在创建一种设备,用于收集来自各种传感器的数据,并通过 Web 和移动应用提供实时分析和智能协助。他们需要一种足够快的语言,以允许最小的实时延迟并使用 SoC 设备的有限资源。他们在选择编程语言时分别从性能、开发性、内存安全、开发者体验等方面进行了评估,具体如下。
1. 性能
正如下图所示,一般认为,Rust 的性能与 C++ 相当。并且 Rust 与其他解释器或者基于 JIT 的语言(如 Lua 或 Python)相比,性能要好得多。
2. 并发性
由于希望能够做到实时处理来自多个传感器的数据。穆萨团队的目标平台 SoC 设备使用基于 ARM 的 CPU,通常有 4 个以上的内核。他们希望所有的 CPU 内核都能得到利用,这意味着拥有多线程支持非常重要。而 Rust 内置了对多线程的支持,它的所有权和借用规则能帮助穆萨团队编写出非常安全的并发代码。
3. 内存安全
Rust 超越了动态类型语言的灵活性特点和静态类型语言快速编译代码等特点,Rust 非常严格且学究式的编译器会检查开发者使用的每个变量以及引用的每个内存地址。它避免了可能会出现的数据竞争条件,并通知开发者未定义的行为。
除此以外,类型安全是 Rust 最大的卖点之一,也是 Rust 连续三年在 StackOverflow 调查中成为最受欢迎的语言的原因。
在 Rust 中,每个值都有一个“拥有范围”,传递或返回信息意味着将所有权转移到一个新的范围。开发者可以借出对调用函数的访问,这就是所谓的“借用”。Rust 确保这些租约不会超过被借用的对象的寿命。这不仅使它非常“类型安全”,而且还有助于开发者正面解决并发问题,因为内存安全和并发错误通常会归结为代码访问数据,而实际上并不应该这样做。
4. 开发者体验
Rust 有一个陡峭的学习曲线。这主要是由于“所有权”和“借用”概念所致。这使得 Rust 与其他语言相比,学习起来更困难,也更耗时。它要求开发者非常清楚关于内存分配和并发性的基本计算原则,并且还要求开发者在实现时牢记这些原则。任何语言都应该如此,尤其是在 Rust 语言中,编译器会显式地强制开发者编写最佳的内存安全代码。
低级别控制和高级别安全保证了开发人员能够对性能进行更多的控制,而无需承担学习 C/C++ 的负担,也不必承担出错的风险。此外,Rust 还通过其强大的库(如 cargo test),方便了开发人员在程序内部编写测试。
综上所述,Rust 对穆萨团队的项目而言是一个很好的选择。穆萨建议,当你想要实现资源占用较少的高性能并发系统时,编程语言的选择是有限的。基于解释器的语言在高并发性和低资源环境中往往表现不佳。系统编程语言是这种用例的理想候选语言。
但是,如果没有资源约束,或者不需要高并发性,又或者能使用其他机制(如事件循环等)实现高并发性,那么基于解释器的编程语言可能会更好。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(3)
- 最新
- 精选
- ZSF😏为啥不和go语言比较一下?16
- Tavern🚀运行时间Go和java差不多,内存消耗少一些而已。1楼对go太迷信了吧1
- 加菲猫从性能、并发性、内存安全、开发者体验这四个方面看,Rust语言是比较好的选择
收起评论