News for hackers. Stuff that matters.
Re:Airbus Chooses GNAT Pro Ada for Development of Unmanned A... by carlmr on Wednesday September 16, 2020 @03:00AM (#24490227)
You can use ADA without the Formal verification part. I would say at least for embedded systems it's more productive than C because it has a much stronger and expressive type system. E.g. if you do a lot of fixed-point math, ADA's type system can express it. ADA has proper arrays, with bounds checks. ADA has built-in multithreading.

ADA is a very productive language for embedded systems, much more so than C. But people are afraid of the language, because they think it's difficult. People don't want to learn it because they think it's old, although ADA 2012 is a much more modern language than C11, it hasn't stagnated as much, but it also evolved more deliberately than C++, keeping it's focus on useful features, instead of adding all the features. At the same time it makes a lot of things easier in an embedded context, because it was designed exactly for this use-case.

The only issues are the lack of developers and the ugly syntax, but I think any C developer could learn what they need to be productive in a month, and the syntax you can get used to.

Re:Airbus Chooses GNAT Pro Ada for Development of Unmanned A... by sacado2 on Wednesday September 16, 2020 @05:33AM (#24491020)
> ADA has proper arrays, with bounds checks.

Not only that, but you can also opt out at compile-time if you need, for performance reasons.

You also have (optional) runtime bound-checking for scalar values (aka "integers"), and you can even specify the bounds yourself (like "A number between 3 and 17").

Re:Airbus Chooses GNAT Pro Ada for Development of Unmanned A... by carlmr on Wednesday September 16, 2020 @06:08AM (#24491195)
I know, there are many great features in ADA, I just tried to first list those that seemed the most relevant to me in an embedded context.
Re:Airbus Chooses GNAT Pro Ada for Development of Unmanned A... by acqq on Wednesday September 16, 2020 @05:54AM (#24491111)
Proper bounds checked arrays, possible to opt out, integers with bounds: Turbo Pascal had that too.
Re:Airbus Chooses GNAT Pro Ada for Development of Unmanned A... by kqr on Wednesday September 16, 2020 @06:17AM (#24491226)
Key word in that sentence: had. I picked up Ada essentially because it seemed to me a more actively maintained Pascal. (I've since learned that Free Pascal/Lazarus might not be as dead as it first appeared.)
Re:Airbus Chooses GNAT Pro Ada for Development of Unmanned A... by andi999 on Wednesday September 16, 2020 @12:02PM (#24493926)
How are compile times in ada? (Best thing about pascal/delphi)
Re:Airbus Chooses GNAT Pro Ada for Development of Unmanned A... by OneWingedShark on Monday September 21, 2020 @12:20PM (#24545208)
They are typically pretty good; the design helps the compiler to not have to re-compile everything any time something is changed, so most of your variance is going to boil down to "how much did you change."

That said, Delphi is blazing fast so Ada will seem a bit slower, typically… but [IME] it's generally not going to be something as slow as a lot of C++ programs.

Re:Airbus Chooses GNAT Pro Ada for Development of Unmanned A... by carlmr on Wednesday September 16, 2020 @06:09AM (#24491200)
Ada has that and many more features that help in creating great embedded software.
Re:Airbus Chooses GNAT Pro Ada for Development of Unmanned A... by foerbert on Wednesday September 16, 2020 @01:17PM (#24494812)
When I first started poking around Ada, I wouldn't say I found the syntax ugly but I very used to C++ and found it at least a bit odd. Nowadays I find myself expressing the exact opposite of your own sentiment. I wish more languages used a syntax more similar to Ada.

The parts of the syntax I'm very familiar with just get treated by my brain just the same. It's not "busier" in my head because words are written out. But things I'm not so familiar with I can basically just read. And anything really unfamiliar with is easy enough to search.

Syntax stuff falls out of my head pretty quickly if I'm not using it, so I find this particularly useful.