comp.lang.ada
 help / color / mirror / Atom feed
From: Maciej Sobczak <see.my.homepage@gmail.com>
Subject: Re: F-22 ADA Programming
Date: Fri, 31 Oct 2014 05:52:53 -0700 (PDT)
Date: 2014-10-31T05:52:53-07:00	[thread overview]
Message-ID: <8100a013-e50d-4a19-b506-716288a2ccb4@googlegroups.com> (raw)
In-Reply-To: <m2vn8a$lmj$2@speranza.aioe.org>


> > That C++ bugs have more severe consequences than Ada bugs? :-)
> 
> Are you kidding me?
> 
> Are you not aware that buffer overflows are a major

Yes, I am. And the recent Heartbleed mess is a very good example of why you are both right and wrong at the same time.
The problem is - most of the buffer overflows that we had to deal with were related to foundation infrastructure, which has long historic links. Nobody is going to replace those foundations without taking those historic links into account - and choosing Ada at the top level does not help much if foundations are not replaced. In the context of Heartbleed this means that your Ada-based web service (like with AWS) would be compromised anyway, because it would use the foundations that are broken, but which you would not be willing to reimplement yourself. And if you attempt to do it, you will take the risk of introducing new bugs, perhaps not buffer overflows, but maybe more subtle (and not less dangerous), like related to the cryptographic correctness of your new foundations. This is a huge economic question mark. It is not obvious (and has no existing data to back up) that replacing the software world with Ada would be automatically beneficial.

Which brings us to another question: what "switching to Ada" is supposed to mean, anyway? That we will take literally billions of lines of C code and put our several thousands of Ada on top of it and call it a success? This is pointless, the impact on overall quality would be exactly zero (think Heartbleed). Or maybe that we will replace the billions of LOC in C with new and untested billions of LOC in Ada? We both know it's not going to happen, and it would not even be necessarily good.

Things look different in those deployments where you can control the whole stack, like in embedded systems. There, "switching to Ada" is actually meaningful and I fully applaud it. Which is actually very relevant and viable with most safety critical systems.

> C and C++ pointers are another area where wild storage references are
> common and have the same damaging effects as buffer overflows. Things like
> that just don't happen in Ada and other safe languages.

They also don't happen with appropriate language subsetting, which is a valid and widely used strategy in safety critical systems. There is no need to abandon the whole language just because you want to get rid of one language feature.

> There's no excuse
> for using C or C++ in safety or even business-critical applications.

The excuse is economy of replacing billions of lines in foundation layers. And, let's be a bit objective, statistically it looks like both safety and business are doing fine. Fuckups get more media attention for obvious reasons (media have their economy, too), but from what I see more banks are thriving thanks to well working systems than falling due to buffer overflows. These are the excuses you are looking for and these are the reasons why future banking systems will be written in C++ and Java, too.

> Nonsense. Most people are not even qualified to choose the tools they use

And who is going to forbid them?

> > If I understand things correctly, lack of due diligence has to be proven
> >in court. 
> 
> That depends. In criminal cases in America they are supposed to have to
> prove guilt. But in civil cases and that's where the money is, accused
> parties have to prove their innocence.

OK, easy. There is a concept of widely accepted practice (also known as "nobody was ever fired for buying IBM"). If all universities teach that Java is the best technology and if all companies use it, then it must be an accepted practice. Then, just as "nobody was ever fired for buying IBM", nobody will be ever sued for writing business systems in Java.

On the contrary - choosing niche technologies might look like taking unnecessary risks and this is certainly a question mark in court. Ada is a niche technology and its technical properties might not be obvious to the judge.

> You continue to try to twist the discussion into the framework of avoiding
> liability and who to collect money from, where I am coming from the angle of
> wanting people to be aware of the issues and do the right thing, because
> it's the right thing to do.

Right. So for most people the right thing to do is not to take risks and do what everybody else does and write in C. Or in Java. Sorry. If all this seems twisted to you, it was not me who has twisted the world.

-- 
Maciej Sobczak * http://www.inspirel.com


  reply	other threads:[~2014-10-31 12:52 UTC|newest]

Thread overview: 97+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-26 18:31 F-22 ADA Programming nathandsash
2014-10-26 19:02 ` Martyn Pike
2014-10-26 21:20 ` David Botton
2014-10-26 23:24   ` Jeffrey Carter
2014-10-26 23:55     ` David Botton
2014-11-14 22:54       ` rriehle
2014-11-14 23:46         ` Dennis Lee Bieber
2014-11-15  6:43           ` wilson
2014-11-15 17:49             ` Jeffrey Carter
2014-11-15 21:28         ` Maciej Sobczak
2014-11-16  9:57           ` Jean François Martinez
2014-11-16 22:26             ` Maciej Sobczak
2014-11-17  0:33               ` Jean François Martinez
2014-10-27  0:13     ` Robert A Duff
2014-10-27  0:31       ` David Botton
2014-10-27 10:17         ` Georg Bauhaus
2014-10-27 10:47           ` J-P. Rosen
2014-10-27 15:06         ` Adam Beneschan
2014-10-27 22:32           ` Randy Brukardt
2014-10-27  6:28       ` Pascal Obry
2014-10-27 15:04     ` Adam Beneschan
2014-10-27 15:17       ` Björn Lundin
2014-10-27 15:41       ` Maciej Sobczak
2014-10-27 16:01         ` Robert A Duff
2014-10-27 20:16         ` Adam Beneschan
2014-10-28  8:45         ` Natasha Kerensikova
2014-10-28 11:58           ` Bill White
2014-10-28 14:56             ` Adam Beneschan
2014-10-28 19:36               ` Bill White
2014-10-28 18:29           ` Jeffrey Carter
2014-10-28 18:37             ` Adam Beneschan
2014-10-28 19:14               ` David Botton
2014-10-28 21:06               ` Jeffrey Carter
2014-10-28 21:32                 ` Simon Clubley
2014-10-28 21:37                 ` Adam Beneschan
2014-10-28 23:59                   ` Jeffrey Carter
2014-10-29  0:34                     ` Adam Beneschan
2014-10-29  5:24                       ` Jeffrey Carter
2014-10-29  8:37                         ` Dmitry A. Kazakov
2014-10-29 17:20                           ` Jeffrey Carter
2014-10-29 20:43                             ` Dmitry A. Kazakov
2014-10-29 20:55                               ` Jeffrey Carter
2014-10-29 21:40                               ` Georg Bauhaus
2014-10-30  8:56                                 ` Dmitry A. Kazakov
2014-11-08  4:52                                   ` Randy Brukardt
2014-11-08  8:12                                     ` Dmitry A. Kazakov
2014-10-30 15:38                             ` Maciej Sobczak
2014-10-30 15:49                               ` Alan Jump
2014-10-30 22:33                                 ` Dennis Lee Bieber
2014-10-30 23:13                                   ` Jeffrey Carter
2014-10-30 16:07                               ` Bill White
2014-10-30 22:37                                 ` Maciej Sobczak
2014-10-31  9:41                                   ` Georg Bauhaus
2014-10-31 12:51                                     ` Brad Moore
2014-11-01  3:03                                     ` C versus Ada (once again :-)), was: " Simon Clubley
2014-11-01 13:35                                       ` Georg Bauhaus
2014-11-03  1:54                                         ` Simon Clubley
2014-11-03  9:42                                           ` Georg Bauhaus
2014-11-03 12:07                                           ` Luke A. Guest
2014-11-04  2:01                                             ` Simon Clubley
2014-11-03 14:26                                           ` Brian Drummond
2014-11-01 13:46                                       ` Maciej Sobczak
2014-11-03  2:01                                         ` Simon Clubley
2014-11-03  9:10                                           ` Maciej Sobczak
2014-11-03 12:09                                           ` Luke A. Guest
2014-11-03 12:40                                       ` Florian Weimer
2014-11-03 21:58                                         ` Shark8
2014-11-03 22:28                                           ` Dmitry A. Kazakov
2014-11-04 13:42                                           ` Florian Weimer
2014-11-04 15:01                                             ` G.B.
2014-11-04 15:50                                               ` Florian Weimer
2014-10-31 10:11                                   ` Bill White
2014-10-31 12:52                                     ` Maciej Sobczak [this message]
2014-11-02 15:40                                       ` Bill White
2014-11-02 22:23                                         ` Maciej Sobczak
2014-11-02 22:52                                           ` Peter Chapin
2014-11-03  1:36                                           ` Simon Clubley
2014-11-03 19:04                                           ` Laurent
2014-10-31 13:24                               ` Jacob Sparre Andersen
2014-11-08  4:45                 ` Randy Brukardt
2014-11-08 23:43                   ` Shark8
2014-11-09  8:39                     ` Simon Wright
2014-11-09 20:53                       ` Shark8
2014-10-28 19:18             ` Simon Clubley
2014-10-27 16:34       ` David Botton
2014-10-27 16:51         ` brbarkstrom
2014-10-27 18:03           ` G.B.
2014-10-27 22:06             ` Simon Wright
2014-10-28  9:40               ` Georg Bauhaus
2014-10-27 20:06         ` Adam Beneschan
2014-10-27 20:21           ` David Botton
2014-10-28 11:34       ` tonyg
2014-10-27 17:01     ` Pascal Obry
2014-10-27  4:53 ` Jerry Petrey
2014-10-29  1:49   ` F-35 (was:F-22 ADA Programming) Robert Love
2014-10-30  9:01     ` Frédéric Praca
2014-10-30  9:07       ` Frédéric Praca
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox