This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2024-04-26
Channels
- # aleph (6)
- # announcements (1)
- # babashka (18)
- # beginners (13)
- # calva (18)
- # cider (5)
- # clojure (144)
- # clojure-europe (34)
- # clojure-nl (1)
- # clojure-norway (29)
- # clojure-uk (4)
- # emacs (9)
- # etaoin (51)
- # events (1)
- # gratitude (1)
- # hyperfiddle (9)
- # lsp (4)
- # off-topic (6)
- # pathom (61)
- # rdf (1)
- # releases (3)
- # shadow-cljs (16)
- # vrac (1)
- # yada (1)
- # yamlscript (3)
I was about to start a new project led by a researcher who had all these big ideas based on various buzzwords heād picked up through the years. For example, he wanted the project to be grounded in IIIF. I thought this was an interesting opportunity to learn about something new, but after having another meeting with him where we went through requirements in more detail, IIIF really doesnāt seem like a great fit for the project after all, so I had to shut it down and offer him a more pedestrian solution even though I really wouldnāt mind working with IIIF. Made me feel like the adult in the room :P
Morning!
I recently participated in rewriting a Clojure app to a JavaScript app - and for the team in question, I found that to be the right decision. I also had mixed feelings about that. And I felt like a grown-up. š
Iād be interested in knowing that too. I guess the team wasnāt really too excited about the prospect of using Clojureā¦?
We had decided to introduce browser testing (eg with Playwright or Etaoin) for our team. The team has little to no Clojure experience (except from me and one other developer). Other ānearbyā teams have a lot of Javascript knowledge, so Javascript is familiar. --- We wanted to use the browser testing first for monitoring. We had experienced that parts of the system failed without anyone noticing, and we believed we could catch those errors with browser tests. I did a first āspikeā to learn Playwright myself. I started with Clojure, since I know Clojure and the REPL is awesome for exploration. After a while I felt like I knew what Playwright was about. Then I wanted to see how the same code looked in Javascript, since I knew there was always a chance the team would not be comfortable maintaining Clojure. We have a technology radar, and Clojure is on ātryā. We observed: 1. Interacting with a running web browser through a REPL is amazing 2. Translating the Playwright Java API docs required some mental juggling ā and the only person kind of comfortable writing java interop in Clojure was me 3. The Playwright API is object oriented, and I found myself missing data oriented APIs. There is a pure clojure webdriver implementation (https://github.com/clj-commons/etaoin), and Iād probably try that next time. 4. Writing Playwright tests using the Node/typescript API was a really smooth experience. Itās well documented, and thereās a ātest recorderā that works smoothly. We are also experimenting with using Clojure for another problem, where Clojure is more suited. I prefer to keep new technologies we as a team are trying out to a limited place, so that the code can be deleted if we decide to back out of the experiment. So I was happy to continue with the Javascript/Typescript Playwright code, and leave the Clojure code.
In short, context is relevant, and we want to write code that we are comfortable maintaining.
yup, that makes sense. Still, so many devs seem stuck in that JS/TS mindset these days (or Python, in my own domain) and I canāt help but feel a bit sad at the homogenisation of software developer jobs. I guess itās always been like this, though,
Yeah ā Iāve faced the āwhat I know represents all there isā attitude a lot, and it just makes me mad.
I feel like we should encourage new developers to learn more than one language. One reason is not to get stuck in that mindset. Another is to build confidence and courage. Show them that they can learn new languages, that itās not impossible.
I have cursory experience with Playwright and Etaoin and while Etaoin is nice from a sexp juggling perspective, there's stuff built up around js Playwright that you don't get for free with Etaoin, like the recorder you mention, and other niceties. Apart from the immediate language difference (syntax and such) in a decision making scenario like yours, there's also the language community, and the tools and knowledge that come with it, to consider. It sucks in a way, because it reinforces the homogenisation loop.
> It sucks in a way, because it reinforces the homogenisation loop. āReinforces the homogenisation loopā in the sense that Clojurians keep on using Clojure tools, and Javascript-folks keep using Javascript things?
In the sense that more people are drawn to the popular solution, and that is both more workforce and incentive for that workforce to create tools for the popular solution, leading to even more draw towards the popular solution which now has more fancy tools, and so on and so forth
It was a sort of reckoning we should have built everything using it, we hadn't and now we're doomed
Sounds like we should repent
While I respect that certain beings don't need much sleep, I think there's value in keeping up the illusion for the sake of earthlings!
Morning