comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Ada in command / control systems
Date: Mon, 4 Mar 2019 15:38:04 +0100
Date: 2019-03-04T15:38:04+01:00	[thread overview]
Message-ID: <q5jd8b$p2d$1@gioia.aioe.org> (raw)
In-Reply-To: 6a0fe4c2-a8e6-4d15-8cbf-f5a85ba0cd86@googlegroups.com

On 2019-03-04 08:03, Maciej Sobczak wrote:

> The fact that you can have blocks implemented in some other formalism whenever needed, instead of fighting with the tool, only gives more credibility to modeling.

Rather incompleteness and/or lack of usability.

> Ironically, you do it with Ada, too, when you rely on components (OSs, DBs, middleware, etc.) written in a sane language like C (sorry, could not resist :-) ).

Nothing of these could not be written in Ada in a better and safer way. 
Simulink is a different case. And remember that the starting point of 
the discussion was not merits of a given language. Ada and C share same 
paradigm. C and Simulink is a paradigm change.

> Actually, Ada would be dead already if this possibilities did not exist. Same with modeling.

It would not be Ada if it could not this.

>> Simulink is an example of why this does not work on larger scale. You
>> can have a small subcomponent in Simulink, but all falls apart once you
>> move to larger components and their interplay.
> 
> Still I don't see how this is worse from source code. Things seem to fall apart no matter what we try to stick together. Maybe we're just bad at engineering software.

Everything has its limits, the difference is where these limits are.

>> My suspicion is that
>> there cannot be such thing as a unified model language, in some strong
>> fundamental way.
> 
> I agree here. So let's mix different modeling formalisms when needed. How about a Simulink model that refers to s-functions implemented by generating code from some other modeling tool, like SCADE? There is no need for a unified language if every team member can have their own, right?

You have a huge system integration problems caused by language 
impedance, which becomes impossible when you have to connect models from 
different paradigms. You must break out of one model go to a reasonable 
language and then re-enter into yet another model.

Better. This debunks the whole argument about pseudo-requirements. How 
can you write requirements in a model language bounds of which 
applicability and the role in the whole system is unknown? You must have 
another set of requirements at least to tell which parts of the system 
to be modeled in which modeling language and then what about all the 
places in-between?

> (Yes, it's that bad.)
> 
>> I have crashed compilers, too.
>>
>> Yes, but you do not start patching the object code. Assembler insertions
>> are extremely rare. s-functions is a norm
> 
> You are mixing arguments. Before you have argued that your modeling tool crashed when you have hacked its files by hand (which is hardly an argument against modeling).

The original problem was not crashing but maintainability. It was 
impossible to modify the diagram and fix errors in it. Crashing came later.

> Now you don't like s-functions (which everybody uses elsewhere, see the other posts about Python code in GNAT). Please don't mix these things, so I can debunk them one by one.

Python in GPS is a GPS issue. I don't use Python, I use Ada. The point 
was that you could not use Simulink for most of elementary programming 
tasks. Whatever Python can, Ada can better.

>> you have to break out of the
>> model abstraction and write a lot around it in order to make that puny
>> model work.
> 
> Which is a norm in this industry. All high-level languages rely on modules implemented in other (presumably low-level) languages. Python would not exist if everybody expected it to be functionally closed, instead, everybody is happy with Python calling C functions below it. Same with modeling.

You compare dynamically typed interpreters with domain-specific 
languages. I compare general purpose languages with domain-specific 
ones. Nothing is broken when you call C from Ada, except for special 
cases which illustrate the point. E.g. if you used C for handling Ada 
exceptions or Ada's protected types. Then you would face model breaking 
and all consequences of. And no, this is not normal practice to do. 
Otherwise you are within the model.

>> Companies cannot claim
>> software free of any liability anymore.
> 
> Which is very interesting and I even applaud it. But here we are talking about tools. And it is a long established tradition to verify final software products in a way that recognizes or bypasses tool deficiencies. That is, the safety of airplane does not depend on Simulink crashing or not. In this scheme (and I don't see this scheme going away) the tool vendor does not take any liability for plane crashing.

MathWorks does not sell planes. In this scenario if a vendor (e.g. 
Airbus) will be made liable, if tools will offer no legal protection, it 
will likely reconsider deployment of these. Presently tools play a huge 
role in avoiding liability.

>> Even giants like Facebook and
>> Amazon get charged.
> 
> Because they make final software (tool vendors don't). And as long as these companies believe that modeling allows them to get their stuff released faster, they will use modeling, with all its deficiencies. And tool vendors will do their best to keep this show going.

They do not believe, they know for sure that certain tools are an easy 
path to certification. And my observation is that the West moves away 
from legalism. Whatever law and norms may say, people and companies are 
made liable. So the safety might be imaginary.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


  reply	other threads:[~2019-03-04 14:38 UTC|newest]

Thread overview: 84+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-25  6:51 Ada in command / control systems Jesper Quorning
2019-02-25  8:24 ` Dmitry A. Kazakov
2019-02-25  9:44   ` Jesper Quorning
2019-02-25 15:54     ` Dmitry A. Kazakov
2019-02-25 13:50   ` russ lyttle
2019-02-25 14:29     ` gautier_niouzes
2019-02-25 15:25     ` Simon Wright
2019-02-25 19:21       ` russ lyttle
2019-02-26  4:50         ` J-P. Rosen
2019-02-26 15:50           ` Simon Wright
2019-02-26 22:10             ` lyttlec
2019-02-26 22:39               ` Niklas Holsti
2019-02-26 23:09               ` Simon Wright
2019-02-27 13:22                 ` russ lyttle
2019-02-27 14:17                   ` Niklas Holsti
2019-02-27 17:49                     ` russ lyttle
2019-02-25 19:53     ` Tero Koskinen
2019-02-25 20:15       ` russ lyttle
2019-03-01 14:56     ` fabien.chouteau
2019-03-01 16:58       ` Simon Wright
2019-03-01 21:19         ` russ lyttle
2019-03-01 22:32           ` fabien.chouteau
2019-03-01 23:24             ` russ lyttle
2019-02-25 21:18   ` Jesper Quorning
2019-02-26  9:28     ` Maciej Sobczak
2019-02-26 11:01       ` Dmitry A. Kazakov
2019-02-26 21:25         ` Maciej Sobczak
2019-02-27  9:33           ` Dmitry A. Kazakov
2019-02-27 20:46             ` Maciej Sobczak
2019-02-27 21:55               ` Dmitry A. Kazakov
2019-02-28 13:12                 ` Maciej Sobczak
2019-02-28 17:43                   ` Dmitry A. Kazakov
2019-03-01  9:22                     ` Maciej Sobczak
2019-03-01 10:46                       ` Dmitry A. Kazakov
2019-03-04  7:03                         ` Maciej Sobczak
2019-03-04 14:38                           ` Dmitry A. Kazakov [this message]
2019-03-05  9:33                             ` Maciej Sobczak
2019-03-05 16:09                               ` Dmitry A. Kazakov
2019-03-06  9:05                                 ` Maciej Sobczak
2019-03-06 14:14                                   ` Dmitry A. Kazakov
2019-03-07  7:02                                     ` Maciej Sobczak
2019-03-07  9:25                                       ` Dmitry A. Kazakov
2019-03-08  7:19                                         ` Maciej Sobczak
2019-03-08 11:08                                           ` Dmitry A. Kazakov
2019-03-08 17:00                                             ` Simon Wright
2019-03-08 17:38                                               ` Dmitry A. Kazakov
2019-03-05  7:18                   ` G. B.
2019-03-05  9:28                     ` Dmitry A. Kazakov
2019-03-05  9:51                       ` Maciej Sobczak
2019-03-05 16:15                         ` Dmitry A. Kazakov
2019-03-06 22:02                           ` Randy Brukardt
2019-03-05 17:55                         ` Niklas Holsti
2019-03-05 21:06                           ` Simon Wright
2019-03-06  7:26                           ` G. B.
2019-03-06  8:22                             ` Dmitry A. Kazakov
2019-03-06 12:04                               ` Simon Wright
2019-03-07  7:35                               ` G. B.
2019-03-07  9:25                                 ` Dmitry A. Kazakov
2019-03-06  9:17                           ` Maciej Sobczak
2019-03-08 22:45                           ` russ lyttle
2019-03-09  8:16                             ` Simon Wright
2019-03-09  8:59                               ` Dmitry A. Kazakov
2019-03-09 18:47                                 ` russ lyttle
2019-03-09 20:06                                 ` G.B.
2019-03-09 20:38                                   ` Dmitry A. Kazakov
2019-03-09 18:34                               ` russ lyttle
2019-03-09 19:28                                 ` Simon Wright
2019-03-10 21:13                                   ` lyttlec
2019-03-11  8:56                                     ` Simon Wright
2019-03-11 14:27                                       ` russ lyttle
2019-03-11 17:01                                         ` Simon Wright
2019-03-11 21:55                                           ` russ lyttle
2019-03-05 11:59                       ` russ lyttle
2019-03-05 18:18                         ` Dmitry A. Kazakov
2019-03-06  2:01                           ` lyttlec
2019-03-06  8:29                             ` Dmitry A. Kazakov
2019-02-26 15:54       ` Simon Wright
2019-02-26 21:43         ` Maciej Sobczak
2019-02-26 22:45           ` Simon Wright
2019-02-27  8:41             ` Dmitry A. Kazakov
2019-02-27 20:55             ` Maciej Sobczak
2019-02-27 21:26               ` Simon Wright
2019-02-27 22:08                 ` Dmitry A. Kazakov
2019-02-27 11:04       ` Jesper Quorning
replies disabled

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