From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Ada-Oriented GUI
Date: Thu, 22 Mar 2018 18:47:25 -0500
Date: 2018-03-22T18:47:25-05:00 [thread overview]
Message-ID: <p91fae$3fs$1@franka.jacob-sparre.dk> (raw)
In-Reply-To: 656fb1d7-48a4-40fd-bc80-10ba9c4ad0a4@googlegroups.com
"Dan'l Miller" <optikos@verizon.net> wrote in message
news:656fb1d7-48a4-40fd-bc80-10ba9c4ad0a4@googlegroups.com...
On Wednesday, March 21, 2018 at 5:33:43 PM UTC-5, Randy Brukardt wrote:
>> "Dan'l Miller" wrote in message
>> news:26a1fe54-750c-45d7-9006-b6fecaa41176@googlegroups.com...
>> On Wednesday, March 21, 2018 at 12:43:04 PM UTC-5, Dmitry A. Kazakov
>> wrote:
>> >> So it is inconsistent unless packed into single thread. No difference,
>> >> exiting GUI do just same.
>>
>> >Well, more power to you then, because you can show all those Rx folks
>> >where their entire worldview is horribly wrong from the git-go.
>>
>> Obviously. :-) Their worldview appears to be that writing software that
>> is
>> actually correct is impossible, so let's not even try.
>
>Here you seem to considering the only correct program to be one that
>cavalierly
>mandates a designer-prescribed order to the arrival of UX-affecting events,
>from all of the UI, the OS, the network, and the completion of long-running
>backend processing.
No, a correct program is one that can be reasoned about. And one cannot
reason about programs that contain race conditions ("unavoidable" or not).
One has to impose some sort of structure to avoid race conditions/dead
locks/live locks, lest the program be unanalyzable. And to have any chance
of believing a program is correct requires analysis.
> Why is such an engineering-time whim the only definition of correctness.
> Why is an engineering-time a-priori prescriptive order of event-arrival
> more
> correct than Rx's a-posteriori meticulous categorization & marshaling of a
> descriptive order of event-arrival so that all the outcome orderings can
> be
> overtly handled properly?
I have no idea what this even means. One has to architect the application so
that there is very limited interaction between tasks, and that interaction
has to be carefully controlled (usually via rendezvous or protected
objects). This has nothing to do with the UI or IO or any other "events".
It's probably easiest for most to just manage the UI in the single task,
because that gets the mess of "events" away from the bulk of the processing.
(Ada is wildly inappropriate for applications that are mostly GUI - use some
web-based langauge for that and use Ada for the heavy-duty processing.)
>> The dustbin of
>> history is full of ideas spawned by intelligent, well-meaning people (I
>> can
>> give plenty of examples even with Ada).
>
>Some people have been trying to throw Ada into the dustbin of history
>several times over the decades. And their efforts have partially
>succeeded: the pro-Ada fervor on university campuses from the
>late-1970s through around 1990-ish* seems to have faded in North
>America, supplanted by Java Java Everywhere as the new mantra.
For my purposes, the possibility of Ada ever being commercially successful
were done by 1990, even though it took me until about 1998 to admit it.
Since I stopped caring about that, I sleep a lot better. Most people are
idiots after all, and there is a point at which one should admit defeat on
appealing to them...
Why have I stuck with Ada since? Mainly because everything else out there is
far worse, and there's little chance of success with them, either. If I'm
going to be a failure, at least I will have failed with the best possible
programming language.
>> If I'm wrong, then kill me. Please! A world where no program can be
>> correct
>> is not a world that I can contribute to nor have any interest in living
>> in.
>
>A circle of friends devise a way of disciplining & marshaling & scheduling
>the
>arrival of an otherwise disparate cacophony of event flows occurring as a
>nature-of-the-beast in the real world,
Sorry, I don't buy the notion that a "cacophony of event flows" is a
requirement in the real world. One can reasonably impose order without
harming the modelling of the "real world". And one has to do that if they
want any reliability in the resulting program.
>...where that circle of friends has relatively little overlap with your
>circle of
>friends-and that is why you want to end it all? Sheesh. I don't know if I
>can talk you down from the ledge, Randy. :-)
Don't try, my mother has never been able to do it...
>I suppose you could try to suppress the release of any RxAda library from
>now until the end of time to keep humanity safe from the reactive scourge
>of introducing a form of data-flow processing to Ada. That would be one
>strategy to make life worth living, I suppose.
The presence of one more library that no one much uses isn't going to bother
me much. :-)
But I've spent my entire life attempting to bring correctness to
programming, with the ultimate (unachievable) goal of a compiler/language
system that detects/prevents all possible bugs from ever going undetected in
a fielded system. (Let's temper "possible" here with the idea that a system
that does precisely what the programmer intended -- but that intent is
wrong -- is not considered a bug in this model.)
I came to Ada in large part because it promised to be a great platform for
such a system (well, that and the fact that it had by far the most sensible
syntax of the contenders in 1980).
For sequential programs, Ada is pretty much there. I've been working on
Janus/Ada infrastructure improvements without even trying to find the code
that needs to be modified -- the compiler/run-time tells me where changes
are needed far quicker than trying to look for them by hand. (One has to
design their code to enable this sort of thing in the first place, but that
pays off many times if the program has any sort of lifetime.)
One of the goals of Ada 2020 is to bring that level of reliability to
parallel programming. That means the compiler has to (conservatively)
diagnose and reject data races between separately executed code.
A system that decides to just ignore race conditions as "unavoidable" is
going in the wrong direction. Most likely, it will kill us all when it's
running self-driving cars and autopilots.
Randy.
next prev parent reply other threads:[~2018-03-22 23:47 UTC|newest]
Thread overview: 102+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-18 13:33 Ada-Oriented GUI Jeffrey R. Carter
2018-03-19 2:03 ` Dan'l Miller
2018-03-19 14:10 ` Dan'l Miller
2018-03-21 9:49 ` Alejandro R. Mosteo
2018-03-21 13:58 ` Dan'l Miller
2018-03-21 18:43 ` briot.emmanuel
2018-03-21 19:17 ` Shark8
2018-03-21 22:40 ` Randy Brukardt
2018-03-21 23:52 ` Shark8
2018-03-22 6:50 ` briot.emmanuel
2018-03-22 16:56 ` Shark8
2018-03-23 16:29 ` Shark8
2018-03-23 22:59 ` Randy Brukardt
2018-03-23 23:43 ` Mehdi Saada
2018-03-26 22:09 ` Randy Brukardt
2018-03-27 7:27 ` Dmitry A. Kazakov
2018-03-27 23:58 ` Randy Brukardt
2018-03-28 7:09 ` Dmitry A. Kazakov
2018-03-22 17:34 ` Alejandro R. Mosteo
2018-03-22 17:50 ` Dan'l Miller
2018-03-22 18:58 ` Shark8
2018-03-23 12:06 ` Alejandro R. Mosteo
2018-03-20 16:41 ` Dan'l Miller
2018-03-20 21:34 ` Randy Brukardt
2018-03-21 2:22 ` Dan'l Miller
2018-03-21 21:50 ` Randy Brukardt
2018-03-22 8:45 ` Dmitry A. Kazakov
2018-03-22 10:58 ` Bojan Bozovic
2018-03-22 11:03 ` Bojan Bozovic
2018-03-21 8:25 ` Dmitry A. Kazakov
2018-03-21 14:30 ` Dan'l Miller
2018-03-21 15:57 ` vincent.diemunsch
2018-03-21 17:33 ` Dan'l Miller
2018-03-21 16:27 ` Dmitry A. Kazakov
2018-03-21 17:04 ` Dan'l Miller
2018-03-21 17:42 ` Dmitry A. Kazakov
2018-03-21 18:19 ` Dan'l Miller
2018-03-21 19:11 ` Simon Wright
2018-03-21 19:51 ` Dan'l Miller
2018-03-21 20:11 ` Dmitry A. Kazakov
2018-03-21 20:33 ` Dan'l Miller
2018-03-21 22:16 ` Dan'l Miller
2018-03-22 9:12 ` Dmitry A. Kazakov
2018-03-22 14:57 ` Dan'l Miller
2018-03-22 15:46 ` Bojan Bozovic
2018-03-22 14:00 ` Dan'l Miller
2018-03-22 17:29 ` Alejandro R. Mosteo
2018-03-21 21:58 ` Randy Brukardt
2018-03-26 21:20 ` G. B.
2018-03-21 22:33 ` Randy Brukardt
2018-03-22 1:43 ` Dan'l Miller
2018-03-22 23:47 ` Randy Brukardt [this message]
2018-03-23 2:37 ` Dan'l Miller
2018-03-23 22:42 ` Randy Brukardt
2018-03-24 7:47 ` Simon Wright
2018-03-23 9:05 ` Jeffrey R. Carter
2018-03-23 9:48 ` Bojan Bozovic
2018-03-23 10:20 ` Alejandro R. Mosteo
2018-03-27 18:32 ` Killing software and certification (was: Ada-Oriented GUI) Alejandro R. Mosteo
2018-03-27 19:25 ` Killing software and certification Dmitry A. Kazakov
2018-03-28 13:54 ` Alejandro R. Mosteo
2018-03-28 14:23 ` Dmitry A. Kazakov
2018-03-28 17:06 ` Alejandro R. Mosteo
2018-03-28 19:35 ` Dmitry A. Kazakov
2018-03-28 15:47 ` Jeffrey R. Carter
2018-03-28 17:02 ` Dennis Lee Bieber
2018-03-28 17:59 ` Dan'l Miller
2018-03-27 19:41 ` Killing software and certification (was: Ada-Oriented GUI) Dan'l Miller
2018-03-28 0:04 ` Randy Brukardt
2018-03-28 2:27 ` Dan'l Miller
2018-03-28 13:54 ` Killing software and certification Alejandro R. Mosteo
2018-03-28 0:21 ` Killing software and certification (was: Ada-Oriented GUI) Jere
2018-03-28 13:54 ` Killing software and certification Alejandro R. Mosteo
2018-03-23 12:31 ` Ada-Oriented GUI Alejandro R. Mosteo
2018-03-23 12:59 ` Dmitry A. Kazakov
2018-03-23 16:16 ` Dan'l Miller
2018-03-23 17:18 ` Dmitry A. Kazakov
2018-03-23 18:31 ` Dan'l Miller
2018-03-23 20:06 ` Dmitry A. Kazakov
2018-03-23 20:48 ` Mehdi Saada
2018-03-23 21:18 ` Dmitry A. Kazakov
2018-03-24 11:36 ` Alejandro R. Mosteo
2018-03-24 13:12 ` Dmitry A. Kazakov
2018-03-28 14:09 ` Alejandro R. Mosteo
2018-03-28 15:02 ` Dmitry A. Kazakov
2018-03-28 18:07 ` Alejandro R. Mosteo
2018-03-29 7:58 ` Dmitry A. Kazakov
2018-04-02 22:13 ` Robert I. Eachus
2018-04-03 8:31 ` Dmitry A. Kazakov
2018-04-03 22:32 ` Robert I. Eachus
2018-04-04 7:30 ` Dmitry A. Kazakov
2018-03-25 12:57 ` Jeffrey R. Carter
2018-03-24 16:33 ` Dan'l Miller
2018-03-26 22:29 ` Randy Brukardt
2018-03-27 0:15 ` Dan'l Miller
2018-03-27 6:08 ` Dennis Lee Bieber
2018-03-27 7:52 ` Simon Wright
2018-03-27 14:48 ` Dennis Lee Bieber
2018-04-01 17:37 ` Robert I. Eachus
2018-03-25 19:19 ` Andrew Shvets
-- strict thread matches above, loose matches on Subject: below --
2018-03-23 22:48 Randy Brukardt
2018-03-24 7:51 ` Simon Wright
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox