[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Thoughts about the "Asynchronous XSLT"

Subject: Re: Thoughts about the "Asynchronous XSLT"
From: "Dimitre Novatchev dnovatchev@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Sat, 1 Aug 2020 17:41:17 -0000
 Re: Thoughts about the "Asynchronous XSLT"
>  Thanks for the suggestion, I will certainly look into this.

Thank you Dr. Kay.

For anyone interested to learn about Reactive Extensions, here are a few
resources:

RxJS in Action, https://www.manning.com/books/rxjs-in-action


   - *.NET Reactive Extensions Fundamentals 1.0*, Pluralsight course by Dan
   Sullivan,
   https://www.pluralsight.com/library/courses/reactive-extensions/table-of-contents

   - *Asynchronous Programming in JavaScript (with Rx.js Observables)*,
   Pluralsight course by by Jafar Husain,
   https://www.pluralsight.com/library/courses/asynchronous-javascript-rxjs-observables/table-of-contents

   - *RxJS in Angular: Reactive Development*, a  Pluralsight course  by
   Deborah Kurata,
   https://www.pluralsight.com/library/courses/rxjs-angular-reactive-development/table-of-contents


 --
Cheers,
Dimitre Novatchev


On Sat, Aug 1, 2020 at 12:43 AM Michael Kay <mike@xxxxxxxxxxxx> wrote:

> Thanks for the suggestion, I will certainly look into this.
>
> My  instinct to use promises was because we're primarily interested in
> retrieving external resources, which is inevitably done by calling out to
> Javascript APIs, and most of those APIs these days manage the asynchrony
> using JavaScript promises.
>
> Michael Kay
> Saxonica
>
> On 1 Aug 2020, at 04:08, Dimitre Novatchev <dnovatchev@xxxxxxxxx> wrote:
>
> First of all, congratulations to the Balisage organizers for organizing
> this conference even in the current situation.
>
> I read Dr. Kay's paper "Asynchronous XSLT" from the proceedings of
> Balisage-2020:
> https://www.balisage.net/Proceedings/vol25/html/Kay01/BalisageVol25-Kay01.html
>
>
> While the described new feature (promises) is impressive and will be a
> step in the right direction, people who have used both promises and
> reactive extensions (RxJs in particular, a Javascript implementation of
> Reactive Extensions:  http://reactivex.io
> <http://reactivex.io/languages.html> ) point out certain advantages of
> using Rx observables over promises:
>
>    - Promises produce only one event; Observables produce a stream of
>    events.
>    - Promises are not lazy; Observables do not fire even after being
>    created, they start emitting the event stream only upon subscription.
>    - Working with nested and interdependent promises can be cumbersome
>    and unwieldy; Much easier and structured when expressed and handled with
>    observables.
>    - Promises, once started, cannot be cancelled; Observables were
>    designed having cancellation in mind.
>    - Shall we mention multicasting ...
>
> Here is a brief video that shows this in running code:
> https://egghead.io/lessons/rxjs-rxjs-observables-vs-promises
>
> The reason for my message is that it is still not too late to make an
> informed design decision that takes into consideration the established best
> approach towards implementing the handling of asynchrony in almost all
> major programming languages, and, to have a written evidence that this
> problem had at least been raised and (hopefully) discussed.
>
> To quote http://reactivex.io/languages.html , Rx has been implemented in
> these languages, platforms and frameworks:
> Languages
>
>    - Java: RxJava <https://github.com/ReactiveX/RxJava>
>    - JavaScript: RxJS <https://github.com/ReactiveX/rxjs>
>    - C#: Rx.NET <https://github.com/Reactive-Extensions/Rx.NET>
>    - C#(Unity): UniRx <https://github.com/neuecc/UniRx>
>    - Scala: RxScala <https://github.com/ReactiveX/RxScala>
>    - Clojure: RxClojure <https://github.com/ReactiveX/RxClojure>
>    - C++: RxCpp <https://github.com/Reactive-Extensions/RxCpp>
>    - Lua: RxLua <https://github.com/bjornbytes/RxLua>
>    - Ruby: Rx.rb <https://github.com/Reactive-Extensions/Rx.rb>
>    - Python: RxPY <https://github.com/ReactiveX/RxPY>
>    - Go: RxGo <https://github.com/ReactiveX/RxGo>
>    - Groovy: RxGroovy <https://github.com/ReactiveX/RxGroovy>
>    - JRuby: RxJRuby <https://github.com/ReactiveX/RxJRuby>
>    - Kotlin: RxKotlin <https://github.com/ReactiveX/RxKotlin>
>    - Swift: RxSwift <https://github.com/kzaher/RxSwift>
>    - PHP: RxPHP <https://github.com/ReactiveX/RxPHP>
>    - Elixir: reaxive <https://github.com/alfert/reaxive>
>    - Dart: RxDart <https://github.com/ReactiveX/rxdart>
>
> ReactiveX for platforms and frameworks
>
>    - RxNetty <https://github.com/ReactiveX/RxNetty>
>    - RxAndroid <https://github.com/ReactiveX/RxAndroid>
>    - RxCocoa <https://github.com/kzaher/RxSwift>
>
> .
> Why don't we make XSLT part of this large family, where all developers
> already know, use and understand the functions and operators, and will be
> able with minimum effort to also use the same in XPath/XSLT?
>
> Or is this really challenging because of existing inherent problems in
> XSLT?
>
> --
> Cheers,
> Dimitre Novatchev
> ---------------------------------------
> Truly great madness cannot be achieved without significant intelligence.
> ---------------------------------------
> To invent, you need a good imagination and a pile of junk
> -------------------------------------
> Never fight an inanimate object
> -------------------------------------
> To avoid situations in which you might make mistakes may be the
> biggest mistake of all
> ------------------------------------
> Quality means doing it right when no one is looking.
> -------------------------------------
> You've achieved success in your field when you don't know whether what
> you're doing is work or play
> -------------------------------------
> To achieve the impossible dream, try going to sleep.
> -------------------------------------
> Facts do not cease to exist because they are ignored.
> -------------------------------------
> Typing monkeys will write all Shakespeare's works in 200yrs.Will they
> write all patents, too? :)
> -------------------------------------
> Sanity is madness put to good use.
> -------------------------------------
> I finally figured out the only reason to be alive is to enjoy it.
>
>
>
>

-- 
Cheers,
Dimitre Novatchev
---------------------------------------
Truly great madness cannot be achieved without significant intelligence.
---------------------------------------
To invent, you need a good imagination and a pile of junk
-------------------------------------
Never fight an inanimate object
-------------------------------------
To avoid situations in which you might make mistakes may be the
biggest mistake of all
------------------------------------
Quality means doing it right when no one is looking.
-------------------------------------
You've achieved success in your field when you don't know whether what
you're doing is work or play
-------------------------------------
To achieve the impossible dream, try going to sleep.
-------------------------------------
Facts do not cease to exist because they are ignored.
-------------------------------------
Typing monkeys will write all Shakespeare's works in 200yrs.Will they write
all patents, too? :)
-------------------------------------
Sanity is madness put to good use.
-------------------------------------
I finally figured out the only reason to be alive is to enjoy it.

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.