From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!feeder.eternal-september.org!aioe.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: Ada-Oriented GUI Date: Sat, 24 Mar 2018 14:12:14 +0100 Organization: Aioe.org NNTP Server Message-ID: References: <9ed9edb1-3342-4644-89e8-9bcf404970ee@googlegroups.com> <26a1fe54-750c-45d7-9006-b6fecaa41176@googlegroups.com> <656fb1d7-48a4-40fd-bc80-10ba9c4ad0a4@googlegroups.com> NNTP-Posting-Host: Ndt9xVy5zYnxU2i8j/ehbw.user.gioia.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 X-Notice: Filtered by postfilter v. 0.8.3 Content-Language: en-US Xref: reader02.eternal-september.org comp.lang.ada:51191 Date: 2018-03-24T14:12:14+01:00 List-Id: On 2018-03-24 12:36, Alejandro R. Mosteo wrote: > 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. Well, how is that triviality any new or groundbreaking? The interfaces I have in Simple Components for communication protocols are just like this. > 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). Since I am using this model too, this is by no means any better than other methods. In fact it is far worse! The reason why I am using it is because there is no other way dealing with asynchronous I/O under the constraint of limited number of tasks. The implementations of all protocols in Simple Components are asynchronous. Now, programming this is like scratching your left ear with the right hand. I keep on asking for co-routines in Ada to break out of this lousy awful mess. To rein assorted mess of events/callbacks into a sequence imperative calls to be a able to program it as if it were an uninterrupted thread of control maintaining its state, just like if the I/O were synchronous. > For my own specification package: https://goo.gl/WQfpeV Good work, BTW. [...] > 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 Too simple to judge. Usually problems start with columns, rendering nodes differently depending on conditions, evaluation of the three dimensions etc. >> [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... No. This is another set properties: scalability, composability. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de