Hacker News new | ask | show | jobs
by haskman 2618 days ago
I wrote a UI framework called Concur which is very similar to immediate mode UIs and hence very easy to use, but also scales fantastically well to complex UIs. The original code was written in Haskell (https://github.com/ajnsit/concur), and then ported to Purescript (https://github.com/ajnsit/purescript-concur), and even Javascript (https://github.com/ajnsit/concur-js).

There's an introduction/tutorial here - https://github.com/ajnsit/concur-documentation/blob/master/R...

1 comments

It looks like we've discovered the same approach in parallel. I even wrote a haskell version first, https://github.com/jhp/sneathlane-haste and then a js version using generators https://github.com/jhp/imperative

Sneathlane is a little different because it outputs to canvas and has a rather complex Widget type to handle focus and to allow different outputs to work together, but the Monad instance has the same behavior of waiting for widget completion. Imperative leans more on the DOM, it has its own VDOM implementation where yours looks to use React's but otherwise the libraries look very similar.

I'm a web developer, I've worked with everything from FRP to React, I think this approach is the best. I hope Concur will help to popularize it! I'm writing this on my commute but will be looking into this further today, to see if there's anything in Imperative that might enrich Concur or vice versa.