Live data from Hacker News

Airbus Chooses GNAT Pro Ada for Development of Unmanned Aerial System

manufacturing.net

101–110 of 203 posts

Re: Airbus Chooses GNAT Pro Ada for Development of Unmanned Aerial System

#102
post #6

Not 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…

Compare the Ada getting started page to the Rust getting started page: https://www.adacore.com/get-started vs https://www.rust-lang.org/learn/get-started

Ada asks you to compare four versions of GNAT and prominently displays "request pricing" buttons. Rust gives you a compiler, a package manager, some IDEs with Rust integrations, and a link to the Rust Book.

In point of fact, Ada has quite a bit of historical baggage/inertia as a proprietary language sold to well heeled defense contractors while Rust has a great deal of effort put toward community engagement and onboarding. Given that Rust now has a "cool" factor that Ada lacks, it's not surprising that people in the "market" for features both languages provide would gravitate to Rust (or other less popular but more engaging systems language communities).

Re: Airbus Chooses GNAT Pro Ada for Development of Unmanned Aerial System

#103
post #87

Earlier quoted context omitted.

Where do they mention that they decided against Rust ? Ada is certified by ISO for being used in automotive control systems. Rust isn't. So I'm not sure how Rust could have even been an option. AFAIK, the options are Ada, MISRA C, and certain Forth flavors. That's it. I'd take Ada over these alternatives every day.

The session that they did together with AdaCore presenting which languages they went through and why they picked Ada in the end. Rust syntax was one of the factors that played against it. "Securing the Future of Safety and Security of Embedded Software" https://www.adacore.com/webinars/securing-future-of-embedded... Page 35, https://www.slideshare.net/AdaCore/securing-the-future-of-sa...

Where does it say syntax is against rust. It seems like no commercial vendor meaning no plans for certification combined with no spark equivalent we're the reasons.

Re: Airbus Chooses GNAT Pro Ada for Development of Unmanned Aerial System

#104
post #6

Not 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…

Rust is akin to the JS framework du jour in respect to safe languages: overpaid bored engineers started a project without bothering checking existing work or dismissing what they found, then they market the resulting (still unfinished) language as something radically new and solving most programming language issues. Some people followed because of the novelty effect and the company that spanned it, which allowed for the hype train to start in places like NH. Rust is a social phenomenon not a technical one.

(This post is sponsored by the Rust Paganization Strike Force)

Re: Airbus Chooses GNAT Pro Ada for Development of Unmanned Aerial System

#105
post #57

Earlier quoted context omitted.

Nobody wants to write 83 and the later additions are far more extensive than C99 and 11.

But k&r 2 was the point of comparison, that's c89 right?

K&R 2 represents the bulk of the modern language. You can't be very productive knowing just Ada83.

Re: Airbus Chooses GNAT Pro Ada for Development of Unmanned Aerial System

#106
post #87

Earlier quoted context omitted.

The session that they did together with AdaCore presenting which languages they went through and why they picked Ada in the end. Rust syntax was one of the factors that played against it. "Securing the Future of Safety and Security of Embedded Software" https://www.adacore.com/webinars/securing-future-of-embedded... Page 35, https://www.slideshare.net/AdaCore/securing-the-future-of-sa...

Where does it say syntax is against rust. It seems like no commercial vendor meaning no plans for certification combined with no spark equivalent we're the reasons.

Watch the video, slides are just one part.

Part of "Determine the difficulty and learning curve for others".

Re: Airbus Chooses GNAT Pro Ada for Development of Unmanned Aerial System

#107
post #40
post #6

Not 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…

NVidia is also using it, in fact they decided against Rust when evaluating which language to adopt for their "Safe Autonomous Driving" project. https://blogs.nvidia.com/blog/2019/02/05/adacore-secure-auto...

I'm surprised they even considered Rust in any capacity as they couldn't use it as there are no certifications for it. Speaks quite a bit for rust that they considered it a "major alternative" as per their slides.

Re: Airbus Chooses GNAT Pro Ada for Development of Unmanned Aerial System

#108
post #69

Earlier quoted context omitted.

>> It has never had a compiler / IDE that made it easy to write Windows or Mac applications. Are you talking about the Eighties? GNAT is available for free since the nineties and the GPS IDE is available for free on all relevant platforms since nearly twenty years; even before there were IDE like alternatives for free.

The free part is confusing as it is GPL'd and I don't understand what the runtime exceptions mean. It's confusing to me where the boundaries are and when I would have to switch to the commercial version (and get a quote) to make paid and closed source software instead of using the community language. Ada is great, but I'll never use it past hobby status under these conditions.

The FSF GNAT version, in contrast to the AdaCore GNAT version, comes with the RLE (see https://www.gnu.org/licenses/gcc-exception-3.1.de.html). This means that the code generated from closed-source Ada applications may be linked with the runtime library included with FSF GNAT without GPL violation. With the runtime library included with the AdaCore GNAT this is not true. So in practice you have to use FSF GNAT for closed-source applications unless you're willing to pay for the AdaCore GNAT. This is mainly an issue if you need to compile for a processor architecture for which there is no FSF runtime library.

Re: Airbus Chooses GNAT Pro Ada for Development of Unmanned Aerial System

#109
post #72
post #64

Earlier quoted context omitted.

Ada doesn't have compile-time-safe dynamic memory allocation and deallocation (i.e., tracking a pointer so that you know statically that it's no longer used elsewhere in the function that frees it). Rust does it through the lifetime system, which is based on Cyclone, which long postdates Ada. The usual alternatives are to statically allocate all your memory, to convince yourself it's safe to use Unchecked_Deallocatio…

As described in another post Ada has features to avoid the problem Rust want's to solve in most cases. You can e.g. allocate varable length arrays on the stack.

And if the allocation fails (stack overflow) one can re-execute the same function with a smaller allocation size.

Re: Airbus Chooses GNAT Pro Ada for Development of Unmanned Aerial System

#110
post #11

Earlier quoted context omitted.

> Why is ADA not adopted more broadly? I would argue that Ada suffered because IDEs weren't a common thing when it had its heyday. For example, Ada (and VHDL which took after it) is really verbose and a single change to a declaration can ripple all over the place. "Refactoring" is no big deal today. IDEs chop through it really easily. Back in 1990, on the other hand, you wanted to strangle a language that made you ri…

>Back in 1990, on the other hand, you wanted to strangle a language that made you ripple a domain change of 0..255 to 0..65535 through all the code by hand. EVERYWHERE. If you're using hard coded constants instead of actual constants, you deserve the pain of changing it everywhere. Something_Lower : constant := 0; Something_Higher : constant := 255; type Something is range Something_Lower .. Something_Higher; Is how…

Or

    type Something is range 0 .. 255;
And now Something'First equals 0, and Something'Last equals 255, or whatever upper bound you chose.

There is no reason to hard code a magic constant for the upper end of the range anywhere.

Post reply on HN