hoplon / javelin

Spreadsheet-like dataflow programming in ClojureScript.
803 stars 44 forks source link

Javelin and Wisp #19

Closed kifirkin closed 9 years ago

kifirkin commented 9 years ago

Hi! Is there a way to use Javelin with Wisp? I am using Meteor.js and there is meteor-wisp package. I want to try Javelin with Meteor (I like the spreadsheet like data bindings), will it compile seamlessly with Wisp?

alandipert commented 9 years ago

Hi @kefirchik thanks for your interest! Unfortunately Javelin depends heavily on ClojureScript's data structures, which I don't think come with Wisp.

One alternative approach you might consider is using Javelin in concert with mori, which is a standalone distribution of ClojureScript's data structures.

I was able to use Javelin from Javascript with mori, which I think means you can probably use Javelin from Wisp also. I used sweet.js to ease formula writing, but I bet you can do something more sophisticated in Wisp, it being homoiconic and all.

Here is the example I made awhile ago that does this stuff: https://dl.dropboxusercontent.com/u/12379861/taptobpm.com.js/index.html

I recognize this isn't a terrific answer, because maybe the best reason to use Wisp is that it doesn't imply the runtime that ClojureScript does. By bringing in the runtime with mori, you obviate this advantage.

Another alternative might be to pick an FRP library and use only "behaviors" or "signals". These are analogous to cells, and if you stick with them - and avoid event streams - you can realize many of the same benefits of working with cells. Javelin was originally inspired by Flapjax, which might be of interest, particularly this paper explaining it.

kifirkin commented 9 years ago

Thanks a lot for your reply @alandipert ! Oh I see, Ill try it out soon. I think Mori can do the job, but like u say its strange to use Wisp with Mori, borrowing its advantages