Clojure on JVM with virtual-threads (green threads) and communicating only via core.async channels (CSP inspired) using immutable data structures is pretty neat, FWIW.
Finally someone is speaking truth to power. These registered non-profits that release their code for free and their leisure time for support need to be knocked down a notch.
We all know they are evil. But you know the most evil thing? That code that was previously released under a free license? Still sneakily on display in the git history like the crown jewels in the Tower of London. Except of armed guard defending the code that wants to be free once more it's hidden behind arcane git commands. Name me a single person that knows how to navigate the git history. I'm waiting. Spoiler alert: I asked Claude and they don't exist.
I'm actually writing some Emacs Lisp right now, because I want $FEATURE in Emacs. I've been away from Emacs Lisp for awhile in the land of Clojure and I'm reimporting certain things the way they are done there.
Libraries that help with that, even though the major underlying structure isn't immutable data structures make Emacs Lisp bearable are: s.el, ht.el, dash.el
It would be great if there was namespacing and less global state pollution.
Of course if you want to integrate with the rest of the Emacs ecosystem and you want some libraries that help you out make things nice means learning a whole different ballgame. Like wanting to use the great transient.el. That's super stateful and based on eieio.el. (Although transient.el is relatively good about hiding that behind a good API surface.)
Overall, even though I wish it was based on a functional core and Clojure's immutable data structure, concurrency, namespacing and its great EDN reader, I just accept the pragmatism on the human scale that if I want a great text based interface that interacts with the rest of my text driven workflow Emacs is a good choice and Emacs Lisp is acceptable.
Cal also writes about reverse office hours.
The idea is that instead of holding a 1 hour meeting where every person only has a small contribution to make (in the realm of 5 minutes or less), they don't attend that meeting but rather the person with the objective that needs input from several different players is tasked with going to the different players when it's convenient to the ones you need the small contributions from.
So I don't think Cal is only interested in optimizing his own life and dumping everything EFT style onto others.
Undoubtedly it was easier for Darwin to work 4 deep work hours a day because he didn't have to handle the kids, prepare the food, clean the house and mow the lawn and work in the garden.
Based on having read Cal a lot I haven't seen him advocate this selfishness in the modern world.
I put in a (mostly) transcript of the Randy Pausch lecture on Time Management [1] and the summarizer gave me:
Time management is an important skill to have in order to lead a happier and more productive life. Julie A. Zelenski, a professor at UVA, gave a talk on time management, drawing from two books and her own experiences. She recommends having a filing system, using speaker phones, and standing during phone calls to save time. She also suggests doing the ugliest task first, having a timer on the phone, and leaving thank-you notes on the desk. Zelenski also recommends scheduling meetings, phone calls, and mundane tasks, and treating people with respect and dignity. An interesting point she made was to use a power drill to carve pumpkins instead of a knife!
Julie Zelenski, ha. AI be dreamin'.
I liked the examples and you're always going to have some weird loss of content when you summarize but the AI taking the joke by Randy and then imagining a surname is still amusing.
+1 that the plastic is the main difference are the "everything to Ryobi"-plastic adadpters you can buy. I use Makita battery->Ryobi tool and it works great.
ClojureDart for Dart/Flutter (early alpha state, one big shipped prod app on iOS/android)
---
Edit:
I don't quite know how to describe it, but having the _exact_ same files in a full-stack web application being read in both the Clojure backend and ClojureScript frontend (API contract) feels pretty neat. As an example having the frontend accurately give the user feedback why his input form isn't going to be accepted without a server round-trip or duplicating code just feels elegant.
Not to make you feel too bad, but based on your sentence you may appreciate a recent addition to my personal REPL toolkit in Clojure which I very much enjoy.
You may remember the rich comment forms in Clojure development as a communication tool to your future self and others. Now someone made them testable https://github.com/hyperfiddle/rcf#readme
I feel this is even closer to the platonic ideal Clojure way of serializing your thoughts to file.