艾达真的走了吗?


17
  • 人们仍然使用Ada吗?(主要用于国防部)
  • 是否所有应用程序都使用Ada“旧版”编写?
  • Ada知识是否仍在销售

5
提出此问题之前,请先阅读以下内容:tiobe.com/index.php/content/paperinfo/tpci/index.html它比F#或Assembly更流行,并且实际上具有简洁的语法(IMO)。
工作


1
@ greenlit,Java到Ada的开发人员目前大约是20:1。要了解更多信息,请尝试扫描职位发布。你在这里什么角度?您是否希望找到Ada高薪工作?
工作

3
如果要在一般应用程序中使用它,普及性为何重要?您打算添加其他开发者吗?
JeffO 2011年

1
@greengit另请参见stackoverflow.com/questions/1078043/why-didnt-ada-make-it-实际上确实做到了,Java花费了大部分时间来赶上它!
NWS

Answers:


27

人们仍然使用Ada吗?(主要用于国防部)

看来Ada的最新更新时间是2005年,Ada 2012的工作仍在进行中,因此该语言本身仍然很活跃。

就用途而言,Ada不再被要求在国防部使用。我已经看过并完成的大多数工作都是在Java,C和C ++中进行的,但是也使用了.NET框架,我什至听说过运行其他JVM语言(例如Scala)的项目,具体取决于系统将被使用。Ada中可能有很多代码,因此如果有很多代码重用和维护工作,我不会感到惊讶。考虑到国防项目的性质,很难就其用途提出具体数字。

一个Ada项目和用户的列表,但看起来最近一次更新是在2008年6月。那里可能有更多的最新列表,但我无法快速找到。

是否所有应用程序都使用Ada“旧版”编写?

如果您要问是否有新的Ada开发,如果在Ada中从头开始编写新的系统,我不会感到惊讶。我怀疑会有太多,但可能还有一些。但是,我怀疑大多数Ada工作都是在现有系统上进行维护或升级,而不是新开发。

Ada知识是否仍在销售

如果您可以找到某个正在寻找该技能的人,那么任何知识都可以出售。即使您不在开发中使用Ada,我也发现了解特定的语言或框架已经改变了我的看法以及我如何使用其他语言或框架。我怀疑了解Ada也会使您深入了解其他方法来设计和构建其他语言的软件。


5
我正在Ada中编写新系统:)
NWS

1
C#和.NET也用于国防承包商编写的业务应用程序中。
乔治·斯托克

@NWS:在某些方面,它似乎可以提供比C语言更强大的静态验证。但是,我很好奇,基于子范围的类型在何种程度上有效地减少了对计算机大小的依赖性。例如,如果一个变量具有两个声明为类型0..200的变量,并希望测试其乘积是否大于250,可以简单地将其乘积与250进行比较,并保证其能正常工作,或者在以下情况下编译失败?它可能会失败,或者如果产品超过32,767,它是否可以通过编译但在运行时失败?
supercat

@supercat是在Ada中,静态验证非常好。关于您的特定查询,正确使用子类型和模块类型来生成要测试的范围将解决您的难题。也有可用于大量操作的库,这些库可在16/32位计算机上工作。您是否阅读过Ada中的强类型系统?一旦学习了如何正确使用它,它就会非常强大。
NWS

@NWS:我查看了Wiki页面上链接的Ada语言定义,虽然我在其中谈到了定义数字类型的内容,但找不到有关它们如何与运算符交互的讨论。如果Ada在对不完全匹配的类型进行操作时需要进行类型转换,这似乎没有什么用,但是我没有看到任何实际需要的指示。如果我正在设计语言,那么在上述情况下,我要么确保比较的行为就像使用可以容纳多达40,000的任何类型进行评估一样,否则……
supercat 2014年


6

Ada仍广泛用于国防,关键任务,安全关键,实时嵌入式系统中。

因此:火车,铁路,飞机,空中交通管制,卫星,医疗系统,核电站等

对于近期使用ADA的看到:


5

在国防部使用“是”吗?我上次检查时仍然如此。从头开始编写新软件,Ada仍然像任何语言一样可行。不利之处在于现有软件的可重用性和适应性,以及程序员的帮助性。但是,它可以与C程序或具有类似二进制接口的程序链接。

在我所知道的任何语言中,Ada可能都是强类型和通用编程最惯用的用法。即使不使用Ada进行编程,该经验也很畅销。


1
直到1990年代后期(如果我没记错的话,1997-1998年),国防部的项目都被授权使用。Ada代码仍然存在,但是越来越多的项目正在使用C,C ++,Java构建,甚至Python等语言也开始流行。我并不是说它没有被使用-仍然有大量的Ada代码仍然可以使用,并且可以为项目重用,修改或扩展。但是没有太多的新开发使用Ada。
Thomas Owens

我发现具有自动模板功能实例化的C ++模板比Ada泛型更加强大和“惯用”。
凯文·克莱恩

1
@Kevin,惯用语是指一种定义语言的典型使用模式,而不是它的“强大”程度。对于c ++程序员,使用多年用于标准库容器的模板但从未定义自己的模板,这并不罕见。对于Ada程序员和泛型来说,这是闻所未闻的。
卡尔·比勒费尔特

请注意,该授权已被取消,而不是被使用。
NWS

1

我敢说,任何在非技术行业或政府中流行且非特定于硬件的语言都将永远不会消失。

公司,加倍的是,政府有太多的法规和其他顾虑,只是因为有些陈旧而无法升级。无论如何,内部都支持那个时代的许多系统,因此,out of support的论点也不会受到支持。

在这种情况下,Thomas的回答很好,直到90年代中期以前所有基于技术的技术都将在军事领域被取代之前,Ada都会存在,但是总的来说,这种问题总是会导致这种回答,因为使用了一段时间的语言大量临界质量永远不会完全消失。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.