温馨提示:本文翻译自stackoverflow.com,查看原文请点击:其他 - Is it worth to learn Ada instead of another languages [c++, c#]?
ada programming-languages robotics

其他 - 值得学习Ada而不是其他语言[c ++,c#]吗?

发布于 2020-04-29 13:12:03

如果我要制造机器人,您会推荐我哪种语言?在我们的大学中,我们可以选择几种语言。大多数学生之所以选择Ada,是因为我们的老师正在使用它。

经过一番研究,我发现ada很老。你怎么看?值得学习吗?

查看更多

提问者
user1012032
被浏览
23
Shark8 2012-09-18 10:23

是。我认为非常非常。

Ada在两点上非常好,这在其他编程语言中常常被忽略:

  • 通用系统:软件包,功能和过程都可以通用。这对于配合DRY [ Don't Repeat Yourself]原理特别有效是的,您可以过度使用泛型,但是我在(其他语言)项目中看到的是剪切粘贴式编程似乎更常见。[如果错误需要在该代码点修复,那么这只会引入多个故障点。]
  • 本机多任务处理。语言级任务处理功能的一大优点是,多线程不会让人感到“棘手”,它不是笨拙的扩展,而是集成到了语言中。

也就是说,还有其他充分的理由学习/使用Ada。一种是挑剔的编译器,因为挑剔的特性使您不得不以自然减少编程错误的方式开始思考。(如禁止andor在同一条件。)

另一个是子类型的概念。子类型与OOP中的对象相反,而不是分支出更多的派生对象,而是将类型(它是可接受的值)缩小到越远离基本类型。{从适当的角度考虑它;Integer是您的基本类型,Natural是您的非负整数,Positive是您的正整数...并且在Ada 2012中,您可以对子类型进行有趣的排除,比如说Primes是Positives的子类型(很抱歉,关于最后一点有点含糊;我仍在学习2012年的内容)。}

使用Ada 2012,您还可以在子程序上拥有前置条件和前置条件。仅此一项就可以使您的库更稳定。(排除空指针也可以。)