Fork me on GitHub

anybody try ClojureScript w/ Google's incremental-dom?

šŸ‘€ 2

Haven't tried it. I did listen to a podcast today with one of the devtools developers and how they're not relying on any frameworks like React, but doing everything with web components and lit-html (


lit is interesting, but there's a less obvious Closure integration story?


I think with incremental-dom that's more or less figured out - also a tiny dep


React is fine, but wondering if we could have lighter weight common solution


lit is awkward because it relies on string templates, which are a pain to use atm in cljs


i remember other issues too, it's been awhile since i tried it


@lilactown how so? I thought it was abstract low level thing?


oh sorry you're talking about lit - yeah - that's a big downside


I just mentioned it since I heard about it in the podcast: it's one of the few libraries used in chrome devtools - never used it myself. I think @thheller also was working on some dom diffing CLJS thing?


I've never used hoplon myself - curious to hear y'alls thoughts about that approach


i did some experiments with incremental-dom a few years back. a couple things i recall: ā€¢ there was some awkwardness when patching multiple elements at a time without keeping a handle to it's parent, i.e. a fragment in React parlance ā€¢ it has no lifecycle or state management, it's literally just a lib for DOM manipulation, so there's a lot of work to do to reach parity with modern ecosystems

šŸ‘€ 1

i think that solidjs is a solid (pun intended) proof of the approach, though. it's fundamentally incremental-dom + reagent reactive state management in one package


the lack of higher level things is not really so much of a concern


a low level thing that is tiny and DCE friendly that others could build off is mostly my interest


I know there's a few cljs libraries in a similar space, but I'm not sure any of them is "there" yet. They're also usually tied to some kind of state management to make them usable. ā€¢ ā€¢ ā€¢, ā€¢ hyperfiddle,


I think modern JS has become really bloated - having a few more things in the box in ClojureScript could make a nice goto solution for lighter weight scripting


these days I think ~20k gzipped is a pretty good selling point


and also not having to look at a million options for simple stuff - that was a nice thing about ClojureScript pre-React, you could more or less use Closure for simple things


not glomming on massive deps which is the JS default

Dustin Getz17:06:12

(Not caught up on whole thread) hyperfiddle/photon (a reactive dialect of Clojure/Script) drives point dom effects and incremental maintenance with Missionary, a functional effect system Photon is a Clojure/Script to Missionary compiler, 2.5k LOC; photon-dom is 350 LOC In addition to incremental rendering, Photon brings distribution of Clojure functions across the client/server system, an extraordinary capability

Dustin Getz17:06:26

1. hello world of client/server transfer 2. query/view composition in a Clojure function in the direct/straightforward style of PHP (compiler managed network) 3. recursive treeview in a browser with direct recursion over file system


k core.async CLJS now has tests via GH actions, will probably do this for tools.reader and test.check as well - also add a step so that when we commit to ClojureScript we at least check that we don't fail those repos

šŸ‘ 1
Alex Miller (Clojure team)23:06:38

Now I just need to make sure to look at the output :)

Alex Miller (Clojure team)14:06:46

@U050B88UR added an svg badge to the readme to show the test status