Fork me on GitHub
#squint
<
2023-11-29
>
seancorfield17:11:13

I saw a little bit of the chatter around Google Closure essentially "going away" and the ClojureScript folks didn't seem very concerned about that -- that makes me more inclined to want to use Squint (or Cherry) for frontend work. I wondered what other folks' opinions were? (I know asking this in the #C03U8L2NXNC channel is somewhat preaching to the choir)

❤️ 2
zane19:11:14

Opinions about what?

seancorfield19:11:52

I guess if you don't understand what I'm asking, you don't have (strong) opinions about any of this 🙂

zane19:11:01

No, I'm unclear about what the question is. Two possible interpretations: 1. "Is anyone else worried about Google Closure being deprecated?" 2. "Are other people using Squint (or Cherry) for frontend work, and if so what work?"

seancorfield19:11:31

Yes, all of the above.

Panel21:11:12

https://github.com/google/closure-library is going into maintenance mode, it’s different from the closure compiler.

✔️ 1
seancorfield22:11:59

Right, and I just said "Google Closure"... but both the library and the compiler are dependencies of ClojureScript and that's always felt a bit precarious to me (and I get the impression that getting away from the library impacts ClojureScript directly since it emits goog.* references -- whereas you can avoid the compiler by not using the optimization modes?).

zane22:11:10

@U04V70XH6 You might be interested in the discussion happening in #C07UQ678E.

seancorfield22:11:30

I looked at the discussion in #C07UQ678E and it seemed to be very much "oh we don't need to do anything" (despite several people raising concerns)... which doesn't exactly inspire me with confidence...

seancorfield22:11:15

But there has been low-level continual pushback against the dependencies on Google Closure for years (both the compiler and the library) and the core team just kind of dismissed it all along so... 🤷:skin-tone-2:

seancorfield22:11:09

At work we tried ClojureScript about a decade ago and built proof of concept apps with Om and then Reagent and decided it wasn't ready for primetime back then (partly the language differences back then, partly the tooling/ecosystem) and so we adopted a sort of waiting game... and meanwhile built all our frontend stuff with JS which seemed a lot more mature, even if the tooling has a stupid level of churn... but I've always kind of hoped we might get to use ClojureScript at some point and the easier interop with Squint (since we have an established JS codebase now) is appealing... ...but I was curious if other folks are a) concerned about the whole Closure thing (apparently not?) and/or b) see Squint/Cherry as a viable (and exciting?) option for doing serious frontend work instead of the traditional cljs tooling?

Chris McCormick02:11:33

For me it's all of the above. I am concerned about it being deprecated. I also know the people working on cljs core (and indeed shadow-cljs) are super smart and I trust they are balancing the different tradeoffs in a sensible way and will replace goog. if/when it becomes necessary. As far as I can tell it's not something that has to happen very fast. One thing I like about the Clojure ecosystem in general is low churn and a great deal of care taken when making potentially breaking changes. I'm also super bullish on borkdude.cljs. and excited at the prospect of having squint in particular in my toolbelt. I've used it in a couple of niche cljs->js situations and look forward to using it in more where the tradeoffs and requirements make sense. At the moment for my day to day projects shadow-cljs and cljs have a lot of DX affordances which I don't want to give up just yet, but I can definitely see squint coming into my codebases in addition to these tools to accomplish different goals, just like nbb has previously.

gratitude 3
borkdude18:11:03

https://squint-cljs.github.io/squint/?boilerplate=https%3A%2F%2Fgist.githubusercontent.com%2Fborkdude%2Fcf94b492d948f7f418aa81ba54f428ff%2Fraw%2Fa64b304b4025cceb1fefc0acd2812692a2dcdb9c%2Faoc_ui.cljs&repl=true&src=KHJlcXVpcmUgJ1tjbG9qdXJlLnN0cmluZyA6YXMgc3RyXSkKCihkZWYgaW5wdXQgKHN0ci90cmltICI0XHQxXHQxNVx0MTJcdDBcdDlcdDlcdDVcdDVcdDhcdDdcdDNcdDE0XHQ1XHQxMlx0M1xuIikpCgooZGVmbiBkYXRhIFtdCiAgKGFzLT4gaW5wdXQgJAogICAgKHN0ci9zcGxpdCAkICMiXHMiKQogICAgKG1hcHYganMvcGFyc2VJbnQgJCkpKQoKKGRlZm4gZmlyc3QtbWF4LXBvcwogIFtudW1zXQogIChyZWR1Y2UgKGZuIFtbXyBtYXgtdmFsIDphcyBtXQogICAgICAgICAgICAgICBbXyBjdXItdmFsIDphcyBjXV0KICAgICAgICAgICAgKGlmICg%2BIGN1ci12YWwgbWF4LXZhbCkKICAgICAgICAgICAgICBjIG0pKQogICAgKG1hcCB2ZWN0b3IgKHJhbmdlKSBudW1zKSkpCgooZGVmbiBuZXh0LXBvcwogIFtzdGF0ZSBjdXItcG9zXQogIChtb2QgKGluYyBjdXItcG9zKSAoY291bnQgc3RhdGUpKSkKCihkZWZuIG5leHQtc3RhdGUKICBbc3RhdGVdCiAgKGxldCBbW21heC1wb3MgbWF4LXZhbF0gKGZpcnN0LW1heC1wb3Mgc3RhdGUpCiAgICAgICAgZGlzdC1zaXplICgtPgogICAgICAgICAgICAgICAgICAgICgvIG1heC12YWwgKGNvdW50IHN0YXRlKSkKICAgICAgICAgICAgICAgICAgICAoanMvTWF0aC5jZWlsKSldCiAgICAobG9vcCBbc3RhdGUgc3RhdGUKICAgICAgICAgICBwb3MgKG5leHQtcG9zIHN0YXRlIG1heC1wb3MpXQogICAgICAobGV0IFtsZWZ0IChnZXQgc3RhdGUgbWF4LXBvcyldCiAgICAgICAgKGlmIChvcgogICAgICAgICAgICAgICh6ZXJvPyBsZWZ0KQogICAgICAgICAgICAgICg9IHBvcyBtYXgtcG9zKSkKICAgICAgICAgIHN0YXRlCiAgICAgICAgICAocmVjdXIKICAgICAgICAgICAgKC0%2BCiAgICAgICAgICAgICAgc3RhdGUKICAgICAgICAgICAgICAodXBkYXRlIHBvcyArIGRpc3Qtc2l6ZSkKICAgICAgICAgICAgICAodXBkYXRlIG1heC1wb3MgLSBkaXN0LXNpemUpKQogICAgICAgICAgICAobmV4dC1wb3Mgc3RhdGUgcG9zKSkpKSkpKQoKKGRlZm4gc3RhdGUta2V5IFtzdGF0ZV0KICAoc3RyL2pvaW4gIiwiIHN0YXRlKSkKCihkZWZuIHNvbHZlCiAgW2RhdGFdCiAgKGxvb3AgWzs7IHdlIHN0b3JlIGFycmF5cyBieSBrZXkgb2Ygc3RyaW5nIHJlcHJlc2VudGF0aW9uIHNpbmNlIG9iamVjdHMgd29yayBvbmx5CiAgICAgICAgIDs7IHdpdGggc3RyaW5nIGtleXMKICAgICAgICAgc3RhdGVzIHsoc3RhdGUta2V5IGRhdGEpIGRhdGF9CiAgICAgICAgIHN0YXRlIGRhdGEKICAgICAgICAgbiAxXQogICAgKGxldCBbc3RhdGUnIChuZXh0LXN0YXRlIHN0YXRlKQogICAgICAgICAgayAoc3RhdGUta2V5IHN0YXRlJyldCiAgICAgIChpZiAoY29udGFpbnM%2FIHN0YXRlcyBrKQogICAgICAgIFtzdGF0ZScgbl0KICAgICAgICA7OyB3ZSB1c2UgYXNzb2MhIGJlY2F1c2UgdGhpcyBpcyBtdWNoIGZhc3RlciB0aGFuIGRlZXAtY2xvbmluZwogICAgICAgIDs7IHRob3VzYW5kcyBvZiBrdnMgYW5kIHRoZSBzdGF0ZXMgb2JqZWN0IGlzbid0IHNoYXJlZCBhbnl3aGVyZSBlbHNlCiAgICAgICAgKHJlY3VyICgjPyg6c3F1aW50IGFzc29jISA6ZGVmYXVsdCBhc3NvYykKICAgICAgICAgICAgICAgIHN0YXRlcyBrIHN0YXRlJykKICAgICAgICAgIHN0YXRlJwogICAgICAgICAgKGluYyBuKSkpKSkpCgooZGVmbiBzb2x2ZS0xIFtdCiAgKHNlY29uZCAoc29sdmUgKGRhdGEpKSkpCgooZGVmbiBzb2x2ZS0yIFtdCiAgKHNlY29uZCAoc29sdmUgKGZpcnN0IChzb2x2ZSAoZGF0YSkpKSkpKQoKKGNvbW1lbnQKICAodGltZSAoc29sdmUtMSkpCiAgKHRpbWUgKHNvbHZlLTIpKQogICkKCiM%2FKDpzcXVpbnQKICAgKGRlZm4gXjphc3luYyBldmFsLXNjcmlwdCBbdXJsXQogICAgIChsZXQgW3Jlc3AgKGpzLWF3YWl0IChqcy9mZXRjaCB1cmwpKQogICAgICAgICAgIHNjcmlwdCAoanMtYXdhaXQgKC50ZXh0IHJlc3ApKV0KICAgICAgIChqcy9ldmFsLmNhbGwganMvZ2xvYmFsVGhpcyBzY3JpcHQpKSkpCgojPyg6c3F1aW50CiAgIChkZWZuIF46YXN5bmMgbG9hZC1zY2l0dGxlIFtdCiAgICAgKGpzLWF3YWl0IChldmFsLXNjcmlwdCAiaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9zY2l0dGxlQDAuNi4xNS9kaXN0L3NjaXR0bGUuanMiKSkKICAgICAoanMtYXdhaXQgKGV2YWwtc2NyaXB0ICJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL3NjaXR0bGVAMC42LjE1L2Rpc3Qvc2NpdHRsZS5wcm9tZXNhLmpzIikpKSkKCihjb21tZW50CiAgKGxvYWQtc2NpdHRsZSkKICAoanMvc2NpdHRsZS5jb3JlLmV2YWwtc3RyaW5nIChqcy9lZGl0b3Iuc3RhdGUuZG9jLnRvU3RyaW5nKSkKICAoZGVmIHNjaXR0bGUtMSAoanMvc2NpdHRsZS5jb3JlLmV2YWwtc3RyaW5nICIoc29sdmUtMSkiKSkKICAoPSBzY2l0dGxlLTEgKHNvbHZlLTEpKSA7OyA9PiB0cnVlCiAgCiAgKQ%3D%3D

🤯 2
😯 2