Live data from Hacker News

Airbus Chooses GNAT Pro Ada for Development of Unmanned Aerial System

manufacturing.net

51–60 of 203 posts

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

#51

Does 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?

I 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#".

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

#52
post #21

Earlier quoted context omitted.

I did Ada at Uni. I think it's an ok language but its Pascal roots show. In an alternate universe where Pascal won instead of C (which it nearly did!) it might have ended up where C++ is. Pascal being the choice for Systems programming instead of C nearly happened. One of the first things Ken Thompson and Bill Joy wrote for BSD was Pascal, and the Apple Lisa system was mostly written in Pascal.

Honestly, I wonder why Pascal doesn't dominate, too. Safer than C while still just as powerful, "teaching language" (easy to learn) but used for serious software (as you note, Apple used it for system programming). FPC is amazingly feature rich.

Kernighan wrote about the limitations of Pascal in "Why Pascal Is Not My Favorite Programming Language": https://www.lysator.liu.se/c/bwk-on-pascal.html

Note, however, that he wrote this in 1981; these days, when someone speaks of Pascal, they usually speak of a dialect based on Turbo or Object Pascal, which appeared in 1983 at the earliest and address many of Kernighan's concerns.

tl;dr the Pascal of the 1970s was a lot rougher than the Pascal you probably know.

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

#53
post #19

Earlier quoted context omitted.

Web search saver: Ada '83 spec is 338 pages ( https://quicksearch.dla.mil/qsDocDetails.aspx?ident_number=3... ) For C life is easy as you can leave things undefined with the caveat "dragons may fly out of your nose" :) An alternative example of a small spec language might be Scheme (especially pre-R6RS): https://www.schemers.org/Documents/Standards/R5RS/r5rs.pdf

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

Shouldn't those versions be compared to C++ though?

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

#54
post #11
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…

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

> Now that IDEs are common, I suspect that some languages like Ada may slowly gain ground over time. There is far less need for a language to be "stupid editor" friendly.

I kind of disagree. While it seems to me that languages now tend to want to support tooling, the trend to tolerate depending on the IDE instead of improving the ergonomics of the language alone peaked sometime around the height of Java’s relative industrial popularity (I'm not saying Java is some kind of extreme examole of IDE dependence; Java itself has focussed a lot on its own ergonomics since that time.)

OTOH, I don't think Ada is so I ergonomic that, other than in a case of pathologically bad design to start with, you'd have to manually change integer ranges everywhere; I'm fairly certain that it supported type aliases for things like that and it would have been idiomatic at the height of its popularity (such as it was) to use them, so that you'd only have to make that change in one place, not everywhere.

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

#55
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…

I agree with you, but I just have to say that if you're having to change a bunch of 255s to 65535 everywhere, you've done things poorly. Ada has a bunch of nice features to refer to these sorts of limits by names or methods that won't need to be changed. For those not familiar with Ada, one way might be MyInteger'Last, which will give the largest valid value for the type. I may or may not be a little crazy about Ada.…

> I agree with you, but I just have to say that if you're having to change a bunch of 255s to 65535 everywhere, you've done things poorly.

Sure, but that was just one example that stuck in my head from using Ada 30+ years ago. I also remember one of my project partners threatening me with bodily harm because I wanted to change a name, and it was going to ripple through his modules.

Perhaps there were better ways to do this in contemporary Ada. However, the fact that people using the language didn't find them says something, no?

A whole class of us absolutely LOATHED Ada because of this kind of stuff. An entire engineering class learned to reach for FORTRAN (unsurprising as it was just beginning its decline) and C (a little surprising as it really wasn't a juggernaut yet) instead of Ada. That says something about Ada, and it isn't good.

Sure, we weren't geniuses, but we weren't stupid. If Ada had been useful help to our classes, we would have used it. The HP-28/HP-48 came out in a similar timeframe and EVERYBODY in our class jumped on those in spite of them being $400+ (1988-1990 money) and having to use RPN--being able to chew through matrices on a calculator was huge.

Maybe modern Ada doesn't suffer from these kinds of problems (or, at least has decent IDE support to deal with it), but it certainly pertains to the path dependence about why Ada isn't popular.

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

#56
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…

There is even an AdaDoom :-)

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

#57
post #19

Earlier quoted context omitted.

Web search saver: Ada '83 spec is 338 pages ( https://quicksearch.dla.mil/qsDocDetails.aspx?ident_number=3... ) For C life is easy as you can leave things undefined with the caveat "dragons may fly out of your nose" :) An alternative example of a small spec language might be Scheme (especially pre-R6RS): https://www.schemers.org/Documents/Standards/R5RS/r5rs.pdf

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?

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

#59
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…

Ada, not ADA. It’s named after Ada Lovelace, not an abbreviation.

The core of Oracles PL/SQL is called DIANA, distributed intermediate annotated notation (for) Ada.

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

#60
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…

I could get Turbo C or Turbo Pascal, there was no Turbo Ada. It has never had a compiler / IDE that made it easy to write Windows or Mac applications.

It has never had a compiler / IDE that made it easy to write Windows or Mac applications

Well, it did, it just cost $50k/seat.

Post reply on HN