Live data from Hacker News

Why Ada Is the Language You Want to Be Programming Your Systems With

hackaday.com

31–40 of 330 posts

Re: Why Ada Is the Language You Want to Be Programming Your Systems With

#31
post #20

What is the employment market like for Ada?

There's some non-DOD avionics floating around that are ADA, I guess because of requirements and regulatory overlaps. http://archive.adaic.com/projects/atwork/boeing.html

I've read that SpaceX uses C++. I'm surprised safety critical systems like SpaceX and Tesla don't use Ada. It's a mature safe language used in their industry, yet they choose C++.

From SpaceX's 2013 Reddit AMA: https://www.reddit.com/r/IAmA/comments/1853ap/we_are_spacex_...

Re: Why Ada Is the Language You Want to Be Programming Your Systems With

#32
> Ada code controls rockets like the Ariane 4 and 5, many satellites, and countless other systems where small glitches can have major consequences.

A somewhat amusing endorsement given that the infamous failure of the maiden launch of the Ariane 5 due to series of interconnected software bugs - a reminder perhaps that the choice of implementation language does not automatically make for a reliable system.

Re: Why Ada Is the Language You Want to Be Programming Your Systems With

#33

First, this is a great introduction article to Ada. It's a great history lesson, and analysis of where it's used and why. That said, it seems to be arguing for something in a vacuum. Where is the mention of other new programming languages that also fit this category? Where is the mention of Rust? Rust fits all the same requirements: - A general, flexible design that adapts to satisfy the needs of embedded computer ap…

> - Easy to implement the language specification. All features should be easy to understand. I'm not sure this is at all applicable to rust. Perhaps once there are more than the one, quickly mutating, implementation, we can say that it's easy to implement the specification. > - Reliability. The language should aid the design and development of reliable programs. This one feels a touch questionable, given the built-in…

> given the built-in "succeed or die" macros that simplify code at the cost of reliability

Most of those are linted for, so you can use them to speed development but still be aware that they shouldn't be there in production code.

Re: Why Ada Is the Language You Want to Be Programming Your Systems With

#34

If you've done VHDL, you'll be familiar with Ada's syntax. When the DoD commissioned the design of VHDL, they required that its syntax be based on Ada. https://en.wikipedia.org/wiki/VHDL#History

They started with Ada's syntax and tacked on strange things that do not fit in, e.g., the ".all" in use clauses.

Re: Why Ada Is the Language You Want to Be Programming Your Systems With

#35
post #5

I first read about Ada in JARGON: Ada:: n. A {{Pascal}}-descended language that has been made mandatory for Department of Defense software projects by the Pentagon. Hackers are nearly unanimous in observing that, technically, it is precisely what one might expect given that kind of endorsement by fiat; designed by committee, crockish, difficult to use, and overall a disastrous, multi-billion-dollar boondoggle (one co…

The situation hasn't changed, ESR just flat-out never had a good read on Ada. You really cannot take the Jargon file seriously, its author's ignorances are glaring and numerous.

Ada's "elphantine bulk" is smaller than many modern languages, and even some which the Jargon File praises, like Common Lisp. Its inter-process communication and exception handling functionality were relatively forward-thinking at the time and would look familiar to your average Java programmer.

Re: Why Ada Is the Language You Want to Be Programming Your Systems With

#36
post #29

First, this is a great introduction article to Ada. It's a great history lesson, and analysis of where it's used and why. That said, it seems to be arguing for something in a vacuum. Where is the mention of other new programming languages that also fit this category? Where is the mention of Rust? Rust fits all the same requirements: - A general, flexible design that adapts to satisfy the needs of embedded computer ap…

> Where is the mention of other new programming languages that also fit this category? Where is the mention of Rust? The article is about Ada. If you want to read about Rust, go read about Rust.

This article promotes Ada as the right language to use for systems programming; a good comparison would include a description of how it compares to other systems programming languages. History of why the DoD chose it in the 1970s, over the languages of the 1970s, doesn't explain why it's the right choice today.

I don't read the comment you're replying to as asking for an article about Rust or any other language. It's interesting to read about Ada, specifically. I would love to see descriptions of what Ada does better than other modern languages for systems programming. "Strong typing" is a feature of many non-C languages, for instance, but types with specific ranges aren't. And the "storage pool" mechanism deserves a more detailed comparison to other memory management approaches.

Re: Why Ada Is the Language You Want to Be Programming Your Systems With

#37

If you've done VHDL, you'll be familiar with Ada's syntax. When the DoD commissioned the design of VHDL, they required that its syntax be based on Ada. https://en.wikipedia.org/wiki/VHDL#History

TIL VHDL was commisioned by the DoD. Also random note, but wouldn't most engineers familiar with HDL's be electronic engineers rather than software developers?

A lot of people trained as EEs seem to end up in software dev jobs these days.

Re: Why Ada Is the Language You Want to Be Programming Your Systems With

#38

First, this is a great introduction article to Ada. It's a great history lesson, and analysis of where it's used and why. That said, it seems to be arguing for something in a vacuum. Where is the mention of other new programming languages that also fit this category? Where is the mention of Rust? Rust fits all the same requirements: - A general, flexible design that adapts to satisfy the needs of embedded computer ap…

Rust cannot be used in most professional use cases where Ada programs can be deployed because the Rust toolchain isn't a qualified one for any of the various IEC 61508 derived qualification regimes.

Which is a shame, because Rust is a great fit for these use cases. Though there are a lot of ecosystem shaped things that present practical challenges too: things that should/could be in no_std but unnecessarily depend on std instead, a variety of cargo workflow issues, etc.

There's a group in Germany (I think) that proposed attempting to qualify Rust to get it approved for inclusion in the list of 61508 languages, but that proposal did not seem to be met with much enthusiasm.

We're using Rust to build tools to service those kinds of industries, and it's non-trivial to justify its use even in adjacent tooling. Let alone to be directly deployed to a target device.

Re: Why Ada Is the Language You Want to Be Programming Your Systems With

#39

If you've done VHDL, you'll be familiar with Ada's syntax. When the DoD commissioned the design of VHDL, they required that its syntax be based on Ada. https://en.wikipedia.org/wiki/VHDL#History

It's interesting to see how Verilog & C both took over there in the industry. There's probably a chasm where the extra typedness isn't worth the velocity cost at the beginning of a project and when it's valuable the weight of switching can be too great. I think the middle ground is a language where you can relax some of your rules but then as pieces mature you can start enforcing stricter typing rules. I observe the…

VHDL is quite strong across European companies.

Re: Why Ada Is the Language You Want to Be Programming Your Systems With

#40
There is some overlap in the use cases between Ada-in-the-mainstream (which seems to be what the article is suggesting) and Rust. The existence of Rust will make it even harder for Ada to break out of its existing domains.

Both seem to have good ecosystems, but quite different. Ada has more high-assurance tooling and practices. Rust has more in terms of packaging and general-purpose high level libraries.

With Ada, it's pretty hard to shake the feeling that it's not as welcoming. Either you are building a spacecraft, or "what are you doing here?". Not that anyone actually says that, and in my limited experience playing with the language, everyone seemed nice. It's just a feeling that's hard to escape. I wish it weren't so, because I think Ada has a lot going for it and it could be good in more donains.

One kind of cool thing is that it's designed to get by without so many heap allocations, and it does some interesting things to allow/encourage more stack allocations. It also has more sophisticated runtime checks, like contracts, that are kind of between a unit test and a compile-time check.

Rust is great at managing complexity. I keep holding out hope that Ada can somehow give us some simplicity back while still making useful software.

Post reply on HN