by contrarian1234 | 2025-10-05 10:58:58+00:00
> Elisp is relatively straightforward and unambiguous PL - far less complicated than even JS or Python, it really doesn't take too long to get to know it.

> Maybe try suspending your language preferences for just a month. Write some Elisp. Maybe not a lot - just enough to solve one real problem you have. You might find that the language you "don't want to get proficient with" has been whispering solutions you couldn't hear over the noise of your preferences.

I've written a good amount of ELisp. I wrote a small linear algebra library in it. I feel I gave it a very good honest try. I read all the manuals and what not. Actually thinking back on how much time i spent trying to grok it.. I'm a bit horrified. Fortunately it lead me to Clojure, so it's not all lost time. I'm definitely not a pro by any stretch. I know this might come as a shock to you, but I always found it an absolute chore to work with. Constantly finicky. The worst is dealing with other people's Elisp code. It's is hard to read, hard to understand how to configure and modify packages. There is so much global state that you have zero insight into what's actually going on.

I still use Emacs b/c of CIDER. The thing leak memory like crazy and I have to reboot it every couple of days. I used to use Ergomacs, but that would also lag the whole editor a ton. There are tons of broken things.. error buffers popping up where I don't want them to, keybindings that work everywhere but Magit etc etc. It's all probably fixeable but it's so difficult to understand what the hell it going on. Each EMacs version bump is like a day or two of lost time of me trying to fix the damn thing. The JVM/Clojure world is so so much easier and straightforward and easy to deal with. There are so many great tools for debugging and profiling. It's night and day. "like using a symphony orchestra to play a lullaby" I just never ever feel that way...

I only program a few hours a week now a days. It's not my full time job these days. But deal with Emacs' warts is a full time job. Even after all my ELisping, I still have very little understanding or insight in to EMacs actual internal design and modularity (if it even has any). This is in stark contrast to Clojure - which is modular and extensible by design

> But here's what I've learned: every tool, every language, every paradigm is just another human attempt at managing complexity

Some languages are better than others. I learned a ton from C++. But some languages.. there are no paradigms in ELisp that I miss in Clojure. I've written a lot of R. I don't miss anything from that poorly designed monster. It didn't teach me anything - other than that some ecosystems live on for too long by inertia. Some languages are just old and bad b/c they're from a period of time where people hadn't figured things out a bit more. I'm sure there are nuggets o ELisp that I just never dug down deep enough for, but to me it just feels dated. ELisps and Schemes are fun and cute, but they're just not a good way to express abstractions and complex ideas. A lot of ideas just hadn't congealed when it was designed. Baking in datastructures in Clojure is just genius. Making Protocols central to the language just rams home all the lessons we've had over the decades about composability and OO design over the year. I don't want to go back to writing cons cells