3 ms·
I am happy to see Elm evolving and it looks like a good framework, but there is a tendency in FRP articles to ignore prior work, as acknowledged at the end of t
by junke 10y ago
I am happy to see Elm evolving and it looks like a good framework, but there is a tendency in FRP articles to ignore prior work, as acknowledged at the end of the article:
> Note: Interested readers may find Lucid Synchrone interesting. Unfortunately for me, I had no idea my thesis had so much in common with synchronous programming languages at the time, but the connections are quite striking. I might argue that Elm was never about FRP.
My thesis was related to synchronous programming languages and articles about FRP tend to have too little to say about them, for my taste. Yes, there is a word or two in the related work, but also it looks like some wheels are being reinvented.
The subscriptions model reminds me of Esterel, which is imperative and uses await/emit pairs.
In the domain of GUIs, which is related to Elm, there is ReactiveML (see "ReactiveML, Ten Years Later" (https://www.di.ens.fr/~pouzet/bib/ppdp15.pdf) https://www.di.ens.fr/~pouzet/bib/ppdp15.pdf)).
Look also at Lustre or Signal, with Signal allowing directives to define multiple execution units: this is used to generate concurrent programs exchanging values with message passing.
The domain is different, though. Synchronous languages do not target web interfaces. They are about embedded systems and as such, they are mostly static. On the other hand, they are compilable into a simple event loop with static memory usage and constant execution time.
Maybe some of the existing research could be useful to something like Elm, even if it does not target the same problems.
- faizshah 10y agoI was interested in the synchronous languages but never got around to reading more in depth about them. Can you recommend a book on the subject? The two languages I was most interested in were Lustre and Esterel.
- tormeh 10y agoCheck out http://www.ceu-lang.org/ http://www.ceu-lang.org/ Then you can try it yourself.
- junke 10y agoSynchronous Programming of Reactive Systems, Halbwachs Synchronous Languages for Hardware and Software Reactive Systems, Berry Designing Embedded Systems with the SIGNAL Programming Language, Gamatié The Synchronous Languages 12 Years Later (http://www-verimag.imag.fr/~halbwach/PS/iee03.pdf http://www-verimag.imag.fr/~halbwach/PS/iee03.pdf) There are some resources at Verimag (http://www-verimag.imag.fr/Tempo,32.html?lang=en http://www-verimag.imag.fr/Tempo,32.html?lang=en) and the Esterel website (https://www-sop.inria.fr/meije/esterel/esterel-eng.html https://www-sop.inria.fr/meije/esterel/esterel-eng.html). You can search the HAL database too (hal.inria.fr) and maybe have a look at SCADE (http://www.esterel-technologies.com/products/scade-suite/ http://www.esterel-technologies.com/products/scade-suite/).
- iheartmemcache 10y agoI'm a huge INRIA fan so I decided to play with Esterel a while back. If people call Haskell an 'academic' language, I have no idea how an average person would describe Esterel. "Thinking in" Esterel is going to be a huge shift for the traditionally trained CS guy who's never touched a circuit. Half the people in our field didn't even go to go to school for CS[1]. Hell, I've got a decent amount of LabVIEW and Verilog experience, and even I have trouble with it. That being said, it's interesting and those resources are definitely going on the Kindle. Do you have a link to your thesis ? (Judging by your comment history, it has a high likelihood of being quality). [1] Not to denigrate those who were less traditionally educated. The brightest engineer I know is a high-school drop-out. They however were motivated enough to read Sipser, Gunter, B Peirce, and all the standard texts (again, not as a requirement to read All The Fancy Books, but just to enrich his own mind for the sake of knowledge - without that curiosity, one might have a difficult time being more than a code-monkey (not that there's anything wrong with that, but I personally have the scratch of "how does this work" that I need to keep on itching compulsively)).
- junke 10y ago> Do you have a link to your thesis? There is only a French version: https://tel.archives-ouvertes.fr/tel-00680308/ https://tel.archives-ouvertes.fr/tel-00680308/ The context is about using a constraint programming approach (in Prolog) to model Lustre/Scade programs and automatically generate traces of input/outputs that satisfy a given test objective. With the help of my advisers I extended the GATeL tool to introduce what is known as "clocks" in Lustre and integrate them with other constraint domains to prune the search space efficiently.
- vanderZwan 10y agoI get the impression that synchronous programming is somehow only really known inside the French PL community, is that correct?
- junke 10y ago
- naasking 10y ago> My thesis was related to synchronous programming languages and articles about FRP tend to have too little to say about them, for my taste. What would you expect them to say exactly? Synchronous languages are first-order reactive programming, but FRP is about higher-order reactive programming.