这么看,rust自由度不如C,取代会是一个及其长期的过程。
不过rust这么设计应该是“可信计算”的理论落地。
【 在 lvsoft 的大作中提到: 】
: 你不太了解rust...
: rust的定位就是成为一门新的底层语言取代c的地位,也即可以达到和c一样的小体积和运行效率。同时作为一门更新的语言,具备zero abstraction能力,也就是说可以比c更高效。比如stm32的hal库用起来对资源是巨大的浪费,几个资源用的比较满的项目都是直接操作寄存器而不是用hal的。但在rust里你指定了器件型号之后,整个底层库都会按照这个器件型号做调整,功能一个不多一个不少。别说资源冲突外设差别这种大差别了,哪怕因为小型号改动,导致某个寄存器的某一个bit的定义没了或者变了,hal库都会在编译期报错。
: rust的目标是在语言层面就消除可能产生的资源使用冲突问题(内存访问只是资源的一种),这对于嵌入式开发是有很大价值的。因为嵌入式开发调试手段有限,靠传统的测试手段来提升代码质量并不如pc平台下那么有效。很多面向消费类电子的硬件产品都有死机问题,只不过靠watchdog凑合过去罢了。我见过一个系统,里面的有个几千行规模的if-then-else分支,我说至少整理下整理成switch-case形式吧,看起来清晰一点,人家跟我说尝试过,但只要做这个改动,哪怕其他逻辑完全不变,编译出来的代码运行直接就会死机。这意味着什么?这意味着现在能运行的代码一定有内存越界、野指针等问题,能正常运行只是一种巧合。但这样的产品就是上万台的发布出去了。
: ...................
--
FROM 120.5.247.*