cherry

pez 2023-10-30T11:14:50.613159Z

Is there some collection of posts/blogs/whatever that can give some idea about what the trade-offs between cherry and squint are? I mainly want to orient my thinking around it, in evaluating if one of them, or both, could be employed by Calva to migrate more of the code to Clojure (from TypeScript).

borkdude 2023-10-30T11:30:13.981779Z

The main trade-off is 1) JS interop and 2) bundle size. Both are easier/better in squint, at the cost of not having immutable data structures. However, squint's standard library acts on objects as if they are immutable, so porting code between CLJS and squint should be easy and should just work, mostly. I'm currently porting the clojure-mode project which is 99% JS interop so it makes a lot of sense for that project to move to squint

borkdude 2023-10-30T11:30:42.893619Z

Currently I'm working mostly on squint (`squint watch`, etc) but all will be eventually ported back to cherry as well

borkdude 2023-10-30T11:31:42.306009Z

the nice thing about squint/cherry is that you can just choose to opt-in on a file by file basis, so e.g. choose a low-risk part of your application first to try it out

pez 2023-10-30T11:40:58.400189Z

Thanks! File by file basis sounds awesome. And sounds like we should start with squint.

borkdude 2023-10-30T11:42:21.882369Z

please do and let me know how it works out for you

🙏 1
borkdude 2023-10-30T11:44:52.709519Z

btw there is a #squint channel might you have any questions