comp.lang.ada
 help / color / mirror / Atom feed
From: "Alejandro R. Mosteo" <alejandro@mosteo.com>
Subject: Re: Ada-Oriented GUI
Date: Sat, 24 Mar 2018 12:36:13 +0100
Date: 2018-03-24T12:36:13+01:00	[thread overview]
Message-ID: <p95d7d$6gf$1@dont-email.me> (raw)
In-Reply-To: <p92tnn$1cft$1@gioia.aioe.org>

On 23/03/18 13:59, Dmitry A. Kazakov wrote:
> On 23/03/2018 13:31, Alejandro R. Mosteo wrote:
> 
>> I (humbly) think that people not knowing Rx but arguing against it are 
>> barking at the wrong tree.
> 
> Yes, but this is a natural defense reflex against snake oil sellers.

Just like Ada enthusiasts pestering C/C++/Rust/... people are seen? ;-)

>> To me, Rx vs imperative [for suitable problems] it's like tasking in 
>> Ada vs other languages. Ada is in entirely another league wrt 
>> simplicity and safety.
> 
> If you mean comparing languages with no tasking support to Ada, that is 
> not like imperative vs. declarative. [Event-controlled is not really 
> declarative]

I mean, e.g., Ada vs Java Thread/Runnable; it was not a technical 
analogy anyway. Just a gut-feeling one.

The primitive tasking facilities of most popular languages, 20+ years 
after Ada, is one of the things that most amazes me (in a bad way).

>> I'm really not an Rx expert, so I'm not sure what kind of research is 
>> being done on it that could be relevant for safety-minded people. What 
>> I know is that the principles are simple and elegant, and my instinct 
>> says that it would interact very well with Ada protected objects, so I 
>> would be surprised if nothing good could be deducted starting from there.
> 
> If principles are simply and elegant they certainly could be explained 
> in a few words understandable for residents of comp.lang.ada.

Hehe. I'd say: it's simple enough, and there's so much information 
available, that anyone with genuine interest can get its bearings in the 
time spent arguing here, and with better explanations than mine using 
mere ASCII. But since you ask (or not) I will give the bare minimum and 
then some quickly triaged links:

----8<----

Rx Observer contract:

OnNext* (OnCompleted | OnError)?

Events arrive once, thread-safely (OnNext call). End of sequences is 
notified once with success or failure, so cleanup is trivial.

The emitter of events is an Observable. The consumer is an Observer. 
Combinations of both are Operators. There are many predefined Operators 
to make life easy, addressing most needs that would be otherwise complex 
(e.g. tasking ones).

For my own specification package: https://goo.gl/WQfpeV

----END----

Links (in somewhat loose reading order):

1) Original reference: https://go.microsoft.com/fwlink/?LinkID=205219
Sections 4.1 - 4.3 focus on the essentials. They're very short. The rest 
is only useful when you already know the basics and jargon.

2) 2-minute intro to Rx:
https://medium.com/@andrestaltz/2-minute-introduction-to-rx-24c8ca793877

2.5/3.5, can't decide) Marble diagrams:
https://medium.com/@jshvarts/read-marble-diagrams-like-a-pro-3d72934d3ef5

3) The whole http://reactivex.io site. I'd start by:
http://reactivex.io/intro.html
http://reactivex.io/documentation/contract.html
http://reactivex.io/documentation/operators.html

Never) I have a paper on my RxAda implementation. Section 2 attempts to 
be an introduction to Adaists not knowing Rx:
Paper: 
https://www.researchgate.net/publication/318135797_RxAda_An_Ada_implementation_of_the_ReactiveX_API
Slides: 
https://www.auto.tuwien.ac.at/~blieb/AE2017/presentations/RxAdaSlidesShort.pdf

...

Since you asked about TreeViews elsewhere, I see they somehow do it (but 
don't ask me how. It's probably ugly JS):
https://react.rocks/tag/TreeView

> [There is nothing simple or elegant in event-controlled architectures. 
> Doing this for 20+ years (this is state of the art in automation 
> systems), I am pretty sure of.]

The most elegant designs can turn ugly once things get real, that's for 
sure...

  parent reply	other threads:[~2018-03-24 11:36 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
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 [this message]
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