comp.lang.ada
 help / color / mirror / Atom feed
From: "Dan'l Miller" <optikos@verizon.net>
Subject: Re: Ada-Oriented GUI
Date: Sun, 18 Mar 2018 19:03:38 -0700 (PDT)
Date: 2018-03-18T19:03:38-07:00	[thread overview]
Message-ID: <7789c58e-ca36-44a2-8818-009eface4a3e@googlegroups.com> (raw)
In-Reply-To: <p8lpr4$bgl$1@dont-email.me>

On Sunday, March 18, 2018 at 8:33:26 AM UTC-5, Jeffrey R. Carter wrote:
> I've written on here before that I think the traditional 
> register-callbacks-and-call-a-procedure GUI interface is a hack only suitable 
> for sequential languages, and attempted to describe my idea of how a GUI for a 
> concurrent language like Ada should work. Some have expressed the opinion that 
> such an interface is not possible.

Jeffrey, you are very insightful & wise (and correct).  Apparently independent of your efforts, Microsoft Research (of all organizations on the planet!) effectively concurs with you.  Over the past decade, Microsoft Research has been spreading their Reactive Extensions (and Interactive Extensions, LINQ) presentation of a very similar idea as to the one that you have:  GUIs could focus on a linear river of dataflows, not on callbacks.  The Rx community smears the current tangled callback set of competing concerns (that are extraordinarily difficult to get right at scale) as “callback hell”.  Microsoft Research is the progenitor of the Rx and Ix libraries for C#, F#, and C++.  Allied but competing efforts are porting variants of Microsoft Research's Rx and Ix libraries to Java, Kotlin, Swift, Lua, JavaScript, Scala, Clojure, Ruby, Python, Go, Groovy, Elixir, and Dart—just about every general-purpose language except Ada (and Fortran, but hardly anyone has considered Fortran a nonnumerical/general-purpose language since Prime Computer switch from writing compilers & OSes in Fortran to PL/P).  But more to you point, Jeffrey, are the RxNetty for .NET, RxAndroid, and RxCocoa for GUIs/OSes with numerous competing information flows (e.g., interactive GUI events, app lifecycle events, network events, realtime events).  At some level, Rx conforms to your vision.

http://reactivex.io/languages.html

Although there are numerous hackerish books out there for Rx, I would recommend Microsoft Research's seminal reference:  _Introduction to Rx: A step-by-step guide to the Reactive Extensions to .NET_ by Ian Campbell.  This book is less about .NET & C# than using .NET & C# as concrete examples of more theoretical/abstract concepts.  Then, the best book by far that I have read for RxAndroid is _Reactive Android Programming_ by Tadas Subonis, which is actually mediocre but all the others for Android and Cocoa are truly abysmal!  Nearly all of these books expend far far far too much effort giving playbaby playtoy examples with sequences of integers and not nearly enough truly teaching how to wire up rivers of data flows for all the interesting Rx-rivers-of-dataflows scenarios is GUIs & OSes.  (I say rivers here merely to paint an instant understandable motivational picture in the mind's eye; the normative term is sequence, but the RxJava-influenced subculture of Rx also uses streams instead of sequences.)

I encourage you to meld your work with Rx, plus also you should seriously consider being the primary developer of RxAda, which is not yet extant to my knowledge.  Indeed, the Rx world is still quite bleeding-edge and in flux; all of Rx in all languages could still be shaped by your work in the ways that it differs.  (Of course in Ada, tasks are part of the language, whereas, in other languages, those languages must rely on the OS framework for threads and schedulers—but the moral of the story of your vision for an RxAda using the vision that you describe can be ported to some degree to the other Rx-capable languages as well.)

  reply	other threads:[~2018-03-19  2:03 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 [this message]
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
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