What does HackerNews think of webfui?

Client-Side Web Framework for ClojureScript

Language: Clojure

Another ‘React before React’ is webfui from ClojureScript world: https://github.com/drcode/webfui

When React was first released, general JS public was skeptical towards it, but ClojureScript community immediately embraced it. One of the early articles praising React for it’s performance was written by David Nolen: https://swannodette.github.io/2013/12/17/the-future-of-javas...

There is actually prior art; React is not the first public use of an immutable virtual DOM; a basically identical approach was presented at Clojure Conj November 2012 (React launched publicly in May 2013 iirc, though React was used on instagram.com in September 2012 [0]):

https://github.com/drcode/webfui https://www.youtube.com/watch?v=HeI5-D7SQe8

If I found myself in a position where Facebook took away my access to React.js and to the patented ideas, does this help me at all? E.g. could I use this as a base and implement the immutable virtual dom myself, or looking into alternatives like mithril?

[0] https://twitter.com/floydophone/status/427160179616927744

(Some edits)

All this talk of jQuery and no mention of domina (https://github.com/levand/domina) the native clojurescript dom manipulation library? I've since abandoned css and jquery selectors in favor of using domina.xpath.

I also want to mention webfui (https://github.com/drcode/webfui). It is authored by Conrad Barski, who also wrote Land of Lisp. He gave a nice talk about it at the Chicago Clojure meetup group a few months back. He is a fellow hacker news user so I figured he deserved a shout out.

Cool! I am wondering if you have worked with other frameworks like Pedestal.io, C2, or WebFUI, Ganelon. Or any others. What do you think of them?

I am just getting started with Clojure/CS and am evaluating the different options.

http://pedestal.io/ http://keminglabs.com/c2/ https://github.com/drcode/webfui http://ganelon.tomeklipski.com/

does Dommy provide a pure API on top of the DOM? (e.g., lens based) I don't immediately understand how one would make that performant given that the DOM is a mutable data structure.

edit: WebFUI[1] is one clojurescript project trying to provide a pure interface for dom manipulation; there are others.

[1] https://github.com/drcode/webfui

i don't think i'm confusing anything. Clojure programmers love their persistent data structures, and in a browser environment, the most important data structure - the document model object - is not persistent and cannot be made persistent in a performant manner because it is a native api.

there is ongoing research into dom manipulaton in clojurescript - Conrad Barski presented one approach[1] at Conj 2012 where the dom is mirrored in clojurescript data structures, and then 'synced' with the dom - so that way the imperative ickyness is tucked away in the sync method - it remains to be seen if that can be made fast enough until we get a native persistent interface to the dom.

[1] https://github.com/drcode/webfui