Hi Alan,

I'm looking forward to viewing your Clojure/West talk as soon as it comes 
out on video. In the meantime, I don't think javelin qualifies as 
"functional reactive". It is just "reactive". State like this: 
https://github.com/tailrecursion/javelin/blob/master/src/cljs/tailrecursion/javelin/core.cljs#L64
 is 
place-oriented computing vs. the value-oriented computing that FP is aiming 
for.

The functional qualifier would require that producers output some immutable 
data structure that consumers read. This is important for concurrency, so 
that each producing/consuming task can run in separate thread and be 
scheduled at will, decoupled from any other task. This is a Hard Problem 
(tm). Infinite sequences are a popular data structure for decoupling 
consumers from producers, but naive implementations lead to uncontrolled 
resource usage esp. when it gets more complicated with higher order 
functions.

In the JavaScript world, Elm tries to tackle this. They have the right 
goals but not yet the right implementation if I understand correctly. E.g. 
see this 
discussion: https://groups.google.com/d/msg/elm-discuss/7oFhwuIX0Go/OA3rvEh-lcIJ

On a meta note, I am glad every time FRP comes up in Clojure circles. The 
reactive space is populated by naive implementations that don't scale and 
fail at concurrency on the one side, and academic Haskell-types that 
conjure up unimplementable pie-in-the-sky schemes on the other side. The 
hope is that Clojure folks are ambitious enough to produce something that 
scales in complexity and performance while having plenty real-world 
scenarios to test their schemes against at their disposal.

Cheers
-- hank

On Wednesday, February 20, 2013 6:33:56 PM UTC+11, Alan Dipert wrote:
>
> Hi all,
> We recently released a ClojureScript library for FRP called Javelin. 
>  Links of interest: 
>
> * Release announcement: 
> http://tailrecursion.com/blog/2013/02/15/introducing-javelin-an-frp-library-for-clojurescript/
> * Demos (more on the way): http://tailrecursion.com/~alan/javelin-demos/
> * GitHub project: https://github.com/tailrecursion/javelin
>
> In a nutshell, Javelin is an abstract spreadsheet that encourages working 
> with concrete values instead of abstract event streams a la FRP.  It 
> supports "discrete propagation", which most FRP implementations provide as 
> the event stream, via the ability to toggle cells between 
> discrete/continuous propagation modes.  Cell mutation semantics are those 
> of ClojureScript atoms.
>
> We have ported Javelin's core to a ref-based Clojure implementation 
> capable of parallel propagation and hope to release it soon.  Among other 
> things, our hope is to use it to process Prismatic graph [1] -compatible 
> workflows reactively.  If you are using graph or flow [2] and are 
> interested in reactive processing, and wouldn't mind helping us with 
> performance testing, drop me a line. 
>
> Thanks for giving Javelin a look! I look forward to your feedback and 
> collaboration.
>
> Alan
>
> 1. https://github.com/Prismatic/plumbing
> 2. https://github.com/stuartsierra/flow
>
>
>
>
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to