为何嵌入式开发人员对Ada不感兴趣?

控制/MCU

1815人已加入

描述


一次又一次的民意调查显示,即使四分之一个世纪过去了,在嵌入式领域,Ada还是没能获得可观的市场份额。然而,数据明显表明:用Ada编写的程序比用C编写的程序缺陷更少,并且交付更快。

Ada编译器都由Ada合格评估测试套件(ACATS)充分评估。最流行的Ada编译器GNAT可免费从GPL获得。


Ada完全是为高可靠性嵌入式应用而设计。在这方面,无论C还是C++都无法相比。Ravenscar Profile更加精妙的针对实时嵌入式系统。任务分配是内置功能,无需RTOS供应商额外提供。


你可能认为“更快,更好并且免费的工具”将是相当吸引人的理由,但是它却没能说服大部分人。这为什么呢?


这可能不是任何效率低下的原因所致。AdaCore的主席Robert Dewar告诉我,与C语言相比,即使采用所有运行时检查,所获得的性能预期虽然不会超过20%,但大约能达到10%。


或许我应该界定“运行时检查”,因为这个概念和C语言性质不同。Ada会寻找错误条件,例如被0除等。你甚至可以定义整数的非法范围。但在C语言中,我们可以这样写:

num_doses=0;

morphine=patient_pain/num_doses;

dispense_morphine(morphine);


我们不能将其归咎于缺乏编译器。AdaCore已经将GNAT移植到大部分主流的16和32位 CPU上。


根据我的经验,刚接触Ada的开发人员通常讨厌这种语言。要获得可编译的源代码显得非常困难。但是,经历了三个Ada项目后,大部分程序员学会喜欢上这种语言。当然,他们投入了更多努力,用来编写正确的代码(这当然是好事情),但是他们节省了大量调试的时间。


正如一位记者Rich Ries给我写的信所言:“Ada之所以不能成功,或许类似于我们对健康生活方式的态度-有时我们都知道应该那样做,但却很少真正去实践!”
 

 

STM32/STM8

意法半导体/ST/STM

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分