Morning!
👋
Good Morning!
morning
Morning
good morning
morning
morning!
Morning!
Anybody doing clojurescript without react here? I was looking for alternatives the other day. WebComponents or things...
Hm… nothing really compels me to move away from React. Many JS devs always seem so busy trying to jump to the next big framework and I have yet to to be convinced that any of the alternatives are a real improvement. It seems to be down to minor speed differences and some ergonomics of plain React which I don’t even encounter since I just use reagent. Web Components are pushed by Google, but they are a lot less dynamic and very class-based compared to functional rendering. I do use them, but only to represent XML in HTML in a valid way (by defining new elements).
And don’t get me started on Tailwind and the recent comeback of server-side rendering. Hype-driven development IMO 😛
Reagent isn’t perfect, but it is incredibly simple and leaves a lot of room to plug in alternative state management as long as it complies with its protocols. I don’t even bother with Re-frame anymore.
That probably wasn’t the answer you were looking for, @ordnungswidrig, but to me reagent is still the king.
good to have a good vote for reagent. How long have you been using it for @simongray?
3-4 years now
At my previous job they were very pleased with Fulcro...
but too complicated for me.
I will probably give Flutter a good try when ClojureScript compiles to Dart.
Also, I sometimes want to experiment with Svelte, but not enough to do it since I can’t bring Clojure there. 😃
You can now also do "CLJS" and Reagent by just writing an HTML page 🎉 https://borkdude.github.io/scittle/#reagent
morning
Such a cool little project, @borkdude.
I’m not sure I can find any practical uses for it right now, but I really want to :P
Here someone used it to host a page on AWS to interact with lambda: https://www.reddit.com/r/Clojure/comments/nu9tas/new_release_of_holylambda_and_a_little_showcase/
on the most recent defn episode, Mr @djblue says that they use https://github.com/lilactown/helix at his work
oh yeah and fair morning to the town folk
which recently added clj-kondo support to titillate @borkdude
titillate ... a word that starts rude and still feels rude somewhat but that would be OK in front of the Pope
Reagent is awesome. A model I can understand and get results quick. I looked at react hooks / helix and I get the value proposition but reagent is just so simple. Nevertheless I want to look what's out there, else.
I did a talk in 2014 at Oredev about ClojureScript React wrappers. I had experimented with Om shortly before but Reagent immediately clicked in my mind. UX is important.
yup
Even David Nolen uses Reagent now, I think
The author of Reagent, Dan Holmsand, is one of those people who did a major contribution to the CLJS ecosystem, but you never hear from him. I think he didn't work on it for years. Luckily others stepped in to carry it forward. But the impact he made is still very solid.
Did he commit digital suicide in 2016 or something? Seems like all his online activity stopped back then.
@jacek.schae @raymcdermott Have you tried getting him on one of your podcasts? It would be awesome to hear from him.
Perhaps @juhoteperi knows him?
It seems he lives in Stockholm. Perhaps @pez can being him flowers on behalf of the CLJS community.
@borkdude Nope, and haven't heard anything. I got invite to the the github org from yogthos, but I'm not sure who created the org first.
I would love to meet this dude! I can deliver flowers, chocolates, kisses and whatever you want if I just knew where to find him.
Agree about the ergonomics of Reagent. I feel that Rum has this as well. Love the mixin interface.
@borkdude @jacek.schae I have not. Seems like it will be tricky.
@pez I don't know but everything that requires some kind of (defcomponent
is somewhat inferior than the "JUST FUNCTIONS!!111" feature from reagent. :rolling_on_the_floor_laughing:
You gain some and you lose some. 😃
It occurred to me at some point that you could write something like Svelte using ClojureScript macros that would generate a component that knows how to precisely update the DOM when its inputs change while keeping the definition declarative. And of course thheller started working on something like that: https://github.com/thheller/shadow-experiments The docs there are a great read
Oh, wow, I had no idea. Thanks, @josh604!
@josh604 I had looked at svelte yesterday and that was exactly what I was thinking.
oh dear, github isn't happy
is this what we have instead of snow days?
A bunch of sites seem to be down, giving a varnish cache error
Reddit, StackOverflow
@otfrom all green for me: https://www.githubstatus.com
@djm_uk reddit I can confirm.
O'Reilly safari was down for me, but now back
other sites are down with a varnish error
Reddit and SO all served by http://fastly.com
I get errors on GitHub’s status page from some of their assets behind a CDN - http://polyfill.io and http://githubusercontent.com
From http://status.fastly.com "Investigating - We're currently investigating potential impact to performance with our CDN services. Jun 8, 09:58 UTC"
@josh604 https://github.com/thheller/shadow-experiments is a treasure source.
that's what I was trying to read and failing
lol, I'm sorry for that.
git clone git@github.com:thheller/shadow-experiments.git
still works.
maybe the shadowy experiments went too far and broke the intertubes?
likely
They warned us not to abuse macros… But we didn’t listen
you could also use macros to just print out the code to a .cljs file and nobody will ever know you used macros
@borkdude pretty sure somebody will eventually write a sci-based tool to do that.
Oh I totally forgot about Thomas Heller's new project. Definitely one to watch.
Btw, we have 256 members in the channel now. This calls for a celebration.
1️⃣0️⃣0️⃣0️⃣0️⃣0️⃣0️⃣0️⃣0️⃣
🍰
Can we get 256 👀 on that cake? :rolling_on_the_floor_laughing:
🎉
we are so geeky!
Close the gates! Nobody be let in nor out now!
you can make another channel, but with a pointer to this immutable one
I like that!
is it just me, or has Cardi B totally ruined WIP
for anyone else?
Cardi B?
brings up a chuckle though should be grateful
just me then.
That's some creative lyrics. 🙈
and now its just me and you sorry
isn't it WAP?
It’s Tuesday outside, but feels like Friday in #clojure-europe
I celebrate Friday twice a week since Wednesday is my day off!
Only 100 so far.
¯\(ツ)/¯
i thought WAP too
So, fairly open question. What are people using/doing with websockets these days?
We use clj-wamp
as a layer on top of websockets, but that hasn’t been touched in years. Maybe it’s complete, maybe no-one is using wamp anymore? If wamp is unfashionable, what are people using.
Also, what do you do with delivery guarantees. I think we’ve implemented a fairly lousy “best-effort” guarantee, which of course limits us in terms of the importance of the data we send, ie, the backend has no tracking of actually delivered events, nor any retry mechanism, so basically UDP semantics.
client side I just use JS interop. server side I use aleph which has a good built-in thing for websockets
I built a small core.async layer on top of this
hmm, the thing is that clj-wamp creates an abstraction of topics on top of websockets so you can multiplex different events over the same socket-connection. I guess it would be just as simple to have a :type
on the event thingy.
I looked it up, we use aleph.http/websocket-connection
we do similar to @borkdude, but with manifold streams instead of core.async
yeah it is, but fuzzy matching
word association football
I wrote a macro which writes a macro the other day, it felt weird.
Thanks for the pointer. I had the same thought when looking at Svelte a few weeks ago: a compiler that outputs JS, :thinking_face: that sounds very cljs to me.
it will replace us all , no doubt
certainly will do when we write a macro to improve a macro
@slipset I use sente, call me a Taoussanist
Much better than being a Taosatanist!
The other day I saw someone (@borkdude?) mention to use WebSockets mainly for knowing when to fetch things via HTTP.
yes, that's one way how we use it