This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2022-06-29
Channels
- # announcements (6)
- # beginners (110)
- # calva (18)
- # clj-kondo (19)
- # cljs-dev (27)
- # clojars (10)
- # clojure (38)
- # clojure-art (2)
- # clojure-europe (13)
- # clojure-germany (1)
- # clojure-norway (26)
- # clojure-uk (2)
- # clojurescript (10)
- # conjure (9)
- # cursive (12)
- # data-science (3)
- # datomic (22)
- # emacs (8)
- # helix (9)
- # honeysql (18)
- # introduce-yourself (1)
- # jobs (1)
- # leiningen (8)
- # lsp (22)
- # missionary (9)
- # nbb (11)
- # off-topic (83)
- # pathom (5)
- # pedestal (4)
- # polylith (1)
- # portal (1)
- # re-frame (3)
- # reitit (15)
- # remote-jobs (1)
- # rum (4)
- # shadow-cljs (88)
- # specter (12)
- # testing (1)
- # vim (39)
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 (https://airhacks.fm/#episode_196)
lit is awkward because it relies on string templates, which are a pain to use atm in cljs
@lilactown how so? I thought it was abstract low level thing?
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 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
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
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. ⢠https://github.com/thheller/shadow-arborist ⢠https://github.com/green-coder/vrac ⢠https://github.com/kennytilton/matrix, https://github.com/kennytilton/matrix/tree/main/cljs/mxweb ⢠hyperfiddle, https://www.hyperfiddle.net/
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
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 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 https://github.com/leonoel/missionary 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 https://hyperfiddle.notion.site/Hyperfiddle-Photon-progress-update-57aee367c20e45b3b80366d1abe4fbc3 https://www.notion.so/hyperfiddle/UIs-are-streaming-DAGs-e181461681a8452bb9c7a9f10f507991
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
Now I just need to make sure to look at the output :)
@U050B88UR added an svg badge to the readme to show the test status