17 ms·
Airbus Chooses GNAT Pro Ada for Development of Unmanned Aerial System
- theamk 6y agoThat's certainly one way to minimize amount of code in the system, making it easier to review and presumably certify. I feel that with more common languages, it is so easy to grab some open-source library and use it without any code review whatsoever. Even if you prohibit third-party code, there might still be some copy-paste from open source projects and even Stack Overflow. Mandating that everything is written in Ada language neatly prevents all this stuff.
- whereistimbo 6y agoI would imagine it would be even more helpful if there is open source library that has formal specification a la seL4 but probably I am hoping too much.
- jolux 6y agohttps://stackoverflow.com/questions/tagged/ada https://stackoverflow.com/questions/tagged/ada
- na85 6y agoI don't care at all for the underscore-heavy style but otherwise Ada is actually a great language for developing high-reliability systems like avionics. Formal specification and verification are only going to grow more important in aircraft certification as time goes on. Nice to see the defense/aerospace sector giving a nod to free software like gnat.
- 3gg 6y agoNot an expert in ADA, but after playing around with it for a while, I don't know why this language doesn't get more praise. It seems to solve a lot of the memory problems Rust solves, albeit in a different way. Its first-class arrays and strong type system seem to go a long way into not having to deal with pointers often, for example. These "features" today would likely be considered part of "a better C", except that none of this is even new; ADA dates all the way back to the 80s. And then ADA/Spark allows for formal verification, which C/Rust do not have to my understanding. Why is ADA not adopted more broadly?
- jolux 6y agoWhy Ada Isn’t Popular: https://news.ycombinator.com/item?id=7824570 https://news.ycombinator.com/item?id=7824570
- kergonath 6y agoThat’s a bit old, though. Anyone can use GNAT now, and there are newer versions of the language. Even the discussion is dated: Ada 2012 is more widespread and there have been developments in SPARK.
- jolux 6y agoIt is old. However I think at least a few of the points stand, particularly about competition with C.
- jayp1418 6y agoThere was recent Thread with lot of discussion over topic :) https://news.ycombinator.com/item?id=24360310 https://news.ycombinator.com/item?id=24360310
- kevin_thibedeau 6y ago> Why is ADA not adopted more broadly? The Ada specification is huge. You can learn 90% of C with K&R 2.
- adamnemecek 6y agoThe problem is that using C in practice is not covered by K&R.
- atlgator 6y agoAny better books you recommend?
- 6y ago
- 1ba9115454 6y agoThere's an online book for Ada for anyone that's interested in what it looks like. https://learn.adacore.com/courses/intro-to-ada/index.html https://learn.adacore.com/courses/intro-to-ada/index.html
- ogre_codes 6y agoI'm not sure if this is still the case, but one of the reasons I learned Ada in college is because it was used by the DOD. I'm not sure if it's still a requirement for DOD projects, but I believe it was at the time. Which would perhaps explain why Airbus chose Ada. Either that or simply the engineers who are on the project were exposed to/ used Ada during other DOD projects. Since college, I've never touched it again.
- Jtsummers 6y agoIt hasn't been a requirement for a long time, though it is used in some DOD projects still.
- p_l 6y agoLast I heard, the first major project that had blanket allowance to not use Ada was F-35... ... And I honestly don't think it benefitted from that exception ;)
- Jtsummers 6y agoThat's still 20 years, and the mandate wasn't terribly successful. Lots of systems from the late 80s and 90s were developed in non-Ada languages, including new development (not just continuations of older systems). Now, whole platforms, that was probably harder to move away from the mandate until later. But components could be and were developed in other languages.
- coldcode 6y agoI actually remember when Ada was in development - the US Air Force decided to use Jovial in the meantime (F16 in this case). From someone who worked at Lockheed he said there were still Jovial codebases in the past couple of years. Ada was much better than Jovial but had a fairly long design time. I got out of the DoD world by the mid 80's so never came across either again.
- Jtsummers 6y ago
- acomjean 6y agoAt the beginning of the century I worked at a company that used Ada for radar software. As it became clear the hpux and Solaris (pa-risc and sparc) where being replaced by Linux On x86 and my company had AdaCore come in and do training in the new toolset (rational not providing Ada compilers for Linux) AdaCore were quite knowledgeable as a company company offering a supported vendor of gnu Ada. I think they’re Still involved heavily in the development of the free ada compiler “GNAT” (part to gcc) https://www.adacore.com/get-started https://www.adacore.com/get-started Defense companies liked open source vendors to take risk off and I’m not sure how it worked but some Ada compilers were “validated” I grew to like Ada, (it has some warts, strings for example, but we didn’t use them often) GNAT Wikipedia page. https://en.m.wikipedia.org/wiki/GNAT https://en.m.wikipedia.org/wiki/GNAT
- etaioinshrdlu 6y agoDoes anyone use Ada for general purpose programming, like for where one might otherwise use Python, Go, nodejs, or something like that? Is it used for any low-reliability areas?
- thesuperbigfrog 6y agoAda Web Application looks nice: https://www.electronicdesign.com/technologies/embedded-revolution/article/21119177/use-ada-for-your-web-development https://www.electronicdesign.com/technologies/embedded-revol... I have not had a chance to use it yet, but I would like to when the opportunity arises.
- doctor_eval 6y agoI understand that pl/pgsql, the sql function language of Postgres, is based on Ada. I quite like it.
- p_l 6y agoIt's apparently derived from Oracle's PL/SQL, which as mentioned somewhere else in the comments is directly using bits of Ada compiler technology.
- Avamander 6y agoI've seen two huge webpages built with PL/PgSQL and I've never after or before seen anything that would come close in terms of functionality, speed, stability, flexibility and safety.
- kqr 6y agoI did back when I had time for pet projects. It's a really nicely designed language where things generally make sense together yet remain clearly separated, once you get over the initial hump. Granted, it's still a low-level language so I would use it for things close to the system or where performance and/or resource usage matters, and not quick prototyping. So think more along the lines of "alternative to C, Go, Rust, D, Java, C#" and not "alternative to Python, ECMAScript, Perl, Clojure, F#".
- 6y ago
- deleted 6y ago[deleted]
- nraynaud 6y agoIt has to be said that Adacore is a French company, there is more to it than just a technical decision
- micronian2 6y agoAdaCore was formed by various individuals at New York University who were involved in the creation of GNAT, which was a DoD funded project. The company is still based in New York. Over the years they have expanded into various parts of Europe.
- ggm 6y agoPascal < modula < ada
- pjmlp 6y agoOnly the first ISO Pascal, ISO Extended Pascal is more in line with Modula-2. There there are all the offsprings from UCSD Pascal and Object Pascal, and same applies to Modula, with Modula-2+ and Modula-3.
- ggm 6y agoI was a CS student at York University shortly after Wirth had a residency there in the 1970s. Pascal of that time, was informative of Modula, but Modula was more informing of ADA because it was still a candidate language model going forward before Ichbiah's pick won out. The whole steelman process was the backdrop to my comparative computer language courses
- CraigJPerry 6y agoAda 95 was the language for 1st year Comp Sci at the University of Glasgow at the start of the millennium. There was a small revival in Ada at that time. I remember the first lecture introduced a little graphical rocket simulation in Ada and us students would write code to land the rocket. I liked that. Then i think the semester after this they introduced us to Haskell (ghc = Glasgow Haskell Compiler). Another good course but one i wished i’d paid more attention to at the time!
- desideratum 6y agoGlasgow alumni here. The Haskell course was incredibly well taught, though the the free learning material for Haskell (e.g. learnyouahaskell) is of significantly higher quality than for most other programming languages.
- tootie 6y agoNYU also. The profs were the creators of GNAT so they taught it instead of Pascal. I loved it but I haven't seen it in action ever in my life.
- marsRoverDev 6y agoAirbus seems to use ADA mainly for drone software. Everything else is MISRA C, or MISRA C with a layer of abstraction overlaid that allows for generation of assembly from the same codebase as well.
- Nokinside 6y agoThe language used is less important than the development process as a whole, including static analysis tool used to verify the code. I believe Airbus uses Astree (abstract interpretation static analysis) verified MISRA C. It's really good tool. https://www.absint.com/astree/index.htm https://www.absint.com/astree/index.htm
- blippage 6y agoI've never written in Ada, but I did come across m2os the other day: an Ada-based system for Arduino Uno microcontroller (and a couple of others) that features a simple scheduling policy. This is actually quite intriguing: a language that includes the concept of tasks at the language level, rather than trying to hammer in a bunch of macros or somesuch into C to achieve a similar result. It makes you wonder if Ada really ought to be the "next" system programming language instead of Rust.
- pjmlp 6y agoIn 1983, although Concurrent Pascal, Modula-2 and plenty of others did it already during the 70's.
- micronian2 6y agoAda is a really good system programming language, especially if you have to get very low level, where the language allows for very fine control over memory layout and for interfacing with hardware. All that _without_ sacrificing type safety. In addition, if you want to make your software even more bullet proof, you should consider the SPARK subset of Ada and statically prove the Absence of Runtime Errors, which includes memory safety. Furthermore, with SPARK you can prove various higher level properties of your software, thus reducing the number of unit tests needed.
- rbanffy 6y agoCan we also get a Rational R1000 to work with? ;-) Looked impressive.
- Autowired 6y agoTo my shame I had never tried ADA before, but after a cursory look I find the syntax similar to Oracle's PL/SQL, which evokes many bad memories. I am sure I will be able to enjoy the language once I pass this barrier.
- anderspitman 6y agoThe first real programming task of my apprenticeship when I was 17 was porting a Boeing Ada avionics project to C. Looking back years later that just feels wrong.
- micronian2 6y agoyes, that is a big step backward. One of the details that people don't realize is that the Ada code probably had runtime checks inserted by the compiler to help catch issues. In addition, the Ada code most likely restricted the set of input values or prevented accidental mixing of different numerical values using its strong type system. When you convert to C, you lose all of that. If there is a code change down the road, you could have an error occur that might have been caught by the Ada compiler at compile time, or if not then by an Ada runtime check. Yes, testing has to be really good to minimize these cases, but we all know it's difficult and very time consuming to develop test for every possible combination. In addition, when you have to do code reviews, you have to worry about a much wider range of possible bad values that can be passed around which can screw up the results.