cherry

amano 2025-07-08T14:16:07.604479Z

Has anyone mixed clojurescript with cherry in production?

amano 2025-07-12T07:34:16.089079Z

ClojureScript depends on javascript which can pull the rug at some point, considering the rate of change in javascript.

amano 2025-07-12T07:34:40.709369Z

The rug pull will collapse the entire clojurescript ecosystem.

f2wHTttf 2025-07-12T08:09:01.631739Z

The churn in the JS ecosystem is more on the Node.js libraries side, not the JS side. The core web technologies (HTML, CSS, JS, web/browser APIs) bend over backwards to maintain backwards compatibility.

👍 1
f2wHTttf 2025-07-12T08:14:55.634839Z

The React-based CLJS libraries (Re-frame, Reagent, UIx) are the only prevalent CLJS libraries I'm aware of with a hard dependency on a Node.js library. At worst React does something to make those libraries unservicable, but the core of CLJS is well insulated against the Node.js library churn.

amano 2025-07-12T09:30:10.855829Z

I think reagent is based on react? Re-frame relies on reagent for reactivity. Siframe tries to make re-frame independent of reagent.

amano 2025-07-10T11:28:07.515279Z

I didn't like how clojurescript requires externs.

borkdude 2025-07-10T11:49:32.137869Z

@amano.kenji are you aware of shadow-cljs?

amano 2025-07-11T04:16:55.086449Z

I'm aware that shadow-cljs takes care of externs to a degree. However, I think clojurescript will not last very long.

f2wHTttf 2025-07-11T06:55:02.035039Z

shadow-cljs's :target :esm and :target :esm-files and annotating the few variables the compiler can't autoinfer with ^js takes care of most of this, externs aren't something I have issues with basically ever

f2wHTttf 2025-07-11T06:58:14.180539Z

The Closure compiler is still much more powerful than the JS tool chain particularly around minification and tree shaking so ClojureScript isn't going away anytime soon

👍 1
borkdude 2025-07-08T14:20:05.342509Z

honestly I don't know if this is a good idea since you will have two copies of the CLJS standard library around (if you are using cherry from npm).

borkdude 2025-07-08T14:20:51.767009Z

you can embed cherry in a ClojureScript application to dynamically evaluate ClojureScript though, but it's a different use case: https://github.com/squint-cljs/cherry/blob/main/doc/embed.md

borkdude 2025-07-08T14:22:15.228679Z

mixing squint with ClojureScript maybe makes more sense since squint has very low overhead

amano 2025-07-09T11:18:46.950929Z

I think cherry should be funded by someone so that we can work with es6 modules and ditch awkward externs.

f2wHTttf 2025-07-09T16:53:29.211939Z

Does Cherry have issues with ES6 and externs? I thought that was CLJS instead.

borkdude 2025-07-11T08:53:20.615549Z

fun fact: cherry and squint are built using shadow-cljs ;)