本文来自知乎翻译:https://zhuanlan.zhihu.com/p/159457622?utm_source=wechat_session&utm_medium=social&utm_oi=626510042657198080&utm_campaign=shareopn
作者:袁承兴 职业程序员,图像算法工程师,团队教练。
原文:Why Rust is the future of robotics
作者:Pierre Rouanet
--------------------------
Rust是一门比较新的编程语言,在2006年由Graydon Hoare启动,2010年由Mozilla正式发布。速度极快的火狐量子浏览器就是用Rust开发的。过去几年里,Rust凭借着许多超棒的特性,产生了很大的吸引力,尤其对机器人技术。
Rust吸收了像C和C++这些低级语言的特性运行速度极快且占用内存少,同时具有很多高级语言的特性保障。它可以避免段错误、保证线程安全。需要特别指出的是Rust在保障所有这些安全特性和抽象特性的同时并不产生额外的开销。它的座右铭:
Rust:快,可靠,高产 一石三鸟
基于上述,我们相信Rust是机器人技术的未来,它使开发者无所畏惧,去创建和执行标准,去建立并依靠一个强大的社区。我们接下来会更详细的解释,在此之前先回顾下当今机器人技术中的嵌入式软件困局。
嵌入式编程的困局
在嵌入式软件中存在两大难题:
很难写出安全的代码。C和C++的内存使用不安全,易发人为错误。很多的bug源于缓冲区溢出,数据损坏,读写未分配的内存。检测和调试变得非常困难,很多攻击和病毒便趁虚而入。你的项目越复杂,就会越难维护。换句话说,嵌入式程序员最担心:添新功能,毁所有。
在嵌入式软件中几乎无法实现并发,所以很难完成从玩具示例到量产的跨越。竞争条件,死锁,数据损坏导致的bug调试起来本来就很复杂。对于嵌入式系统来说,开发环境相比基于OS的世界就更没优势了。调试硬件中断甚至会让信心满满的嵌入式开发者感到恐惧。