Remix.run Logo
skepti 2 days ago

Another factor for Ada not being more popular is probably: https://en.wikipedia.org/wiki/Ariane_flight_V88

> The failure has become known as one of the most infamous and expensive software bugs in history.[2] The failure resulted in a loss of more than US$370 million.[3]

> The launch failure brought the high risks associated with complex computing systems to the attention of the general public, politicians, and executives, resulting in increased support for research on ensuring the reliability of safety-critical systems. The subsequent automated analysis of the Ariane code (written in Ada) was the first example of large-scale static code analysis by abstract interpretation.[9]

adrian_b 2 days ago | parent | next [-]

The failure of Ariane was not specific to Ada.

It is just an example that it is possible to write garbage programs in any programming language, regardless if it is Rust or any other supposedly safer programming language.

A program written in C, but compiled with the option to trap on overflow errors would have behaved identically to the Ada program of Ariane.

A program where exceptions are ignored would have continued to run, but most likely the rocket would have crashed anyway a little later due to nonsense program decisions and the cause would have been more difficult to discover.

pjmlp 2 days ago | parent | prev [-]

People love to point that out, missing the amount of failures in C derived languages.

skepti 2 days ago | parent [-]

But C-derived languages are also used much more. And it still shows that Ada does not automatically make software correct and robust. It presumably did indeed make Ada less popular than if it had not happened.

pjmlp 2 days ago | parent [-]

People still die in car crashes when wearing seatbelts, ergo seatbelts are useless.

skepti2 2 days ago | parent | next [-]

Yet that was not any of my arguments. It, ironically, applies more to the argument you made in your previous post.

A better argument would have been based on statistics. But that might both be difficult to do, and statistics can also be very easy to manipulate and difficult to handle correctly.

I think companies should be free to choose any viable option, and then have requirements that the process and end product is good. Mandating Ada or other programming languages, doesn't seem like it would have prevented Ariane 5, and probably wouldn't improve safety, security or correctness, instead just open the door for limiting competition and cartels and false sense of security. I believe that one should never delegate responsibility to the programming language, more that programmers, organizations and companies are responsible for which languages they choose and how they use them (for instance using a formally verified subset). On the other hand, having standards and qualifications like ISO 26262 and ASIL-D, like what Ferrocene is trying to do with their products for Rust, is fine, I believe. Even though, specifically, some things about the Ferrocene-derived specification seem very off.

marbro 2 days ago | parent | prev [-]

[dead]