3 ms·
I haven't watched that part of the video yet, but I've always believed that Rich's biggest blind-spot seems to be about not realizing how Clojure's macro system
by mtrimpe 13y ago
I haven't watched that part of the video yet, but I've always believed that Rich's biggest blind-spot seems to be about not realizing how Clojure's macro system can be used to rewrite regular code into FRP.
Just have a look at what a macro like Javelin [1] already enables [2] and imagine how powerful that would be when combined with 'live' Datolog queries where the query results in the browser will stay up to date with the results from the logic datalog query on Datomic.
I've tried explaining it to Rich at EuroClojure 2012 but I'm pretty sure he was still thinking in terms of 'classic FRP' back then.
[1] https://github.com/tailrecursion/javelin https://github.com/tailrecursion/javelin
[2] http://www.infoq.com/presentations/ClojureScript-Javelin http://www.infoq.com/presentations/ClojureScript-Javelin
- lukev 13y agoIt's not classic FRP, but you're basically describing core.async. Have you looked at that at all?
- mtrimpe 13y agoCore async is also an example of a very powerful macro that rewrites execution flow; but they do decidedly different things. While Core Async is about powerful non-threaded coordination of processes, Javelin is about creating self-updating non-cyclical function graphs. Basically it's about automatically keeping a derived a view from a small set of data up to date when the source data changes. It's the exact same thing a spreadsheet does for numbers, but becomes much more interesting when the derived view is a DOM tree derived from database+view state. FWIW; I was inspired by the the work of Kenny Tilton (a.k.a. Smuglispweeny) and his Cells library and manifesto [1]. His work seems to be falling in disarray, but there's still some stuff up on the wayback machine [2][3] [1] http://smuglispweeny.blogspot.nl/2008/02/cells-manifesto.html http://smuglispweeny.blogspot.nl/2008/02/cells-manifesto.htm... [2] https://web.archive.org/web/20080925125040/http://www.tilton-technology.com/cells_top.html https://web.archive.org/web/20080925125040/http://www.tilton... [3] https://web.archive.org/web/20080925113544/http://bc.tech.coop/blog/030911.html https://web.archive.org/web/20080925113544/http://bc.tech.co...
- mtrimpe 13y agoJust watched it and his response is definitely not about the kind of FRP I'm talking about here, but seems to be criticising a specific interpretation of continuous FRP. When asked what is the right direction he explicitly mentions that it's when all your data is immutable, which definitely applies to Javelin.