2025: Never-ed(1)-ing Lisp, Writing, and Feelings
By Artyom Bologov
2024 (bear with me) #
I never reviewed my 2024, so I’m going to throw a short bullet list of what was there:
- I left Nyxt team and picked up Scheme as my main work language, over Common Lisp. Did posts and nerd snipes on Guile optimization, Wisp explanations and parsing, and pluggable and overridable procedures.
- On a related note, I became a standard author for SRFI 253, almost the first attempt to get typing into Scheme! I am still surprised no one beat me to something so obvious…
- Seriously got to writing about Lambda Calculus, the most long-lasting series of posts and topic on my site.
- Picked up ed(1) somewhere around the middle of the year. Did really wrong parentheses matching for my Modal implementation, relied on ed(1) over sed(1) for text scripting, and moved all my site over to ed(1) generation with pretty advanced pseudo-HTML syntax. Finally, I customized the hell out of ed(1), laying the foundation for aed, the editor I use daily.
- Covertly and occasionally, I was still doing Common Lisp, managing to pillage some design patterns and cultural insights out of my Nyxt work and the very welcoming community out there.
- And I became a full-blown writer, writing as much as 27 posts for this small site, hitting Hacker News at least once, and enraging many Reddit users!
Okay, writing this fills me with pride for the person that was stuck in Armenia, lived through extreme loneliness, and tried to find a stable job all year. Good job, Artyom!
Now, 2025 #
Even though I found a full-time job and became truly financially stable for the first time in I guess a decade? I’m uneasy about this year. I’ve given up on some of my hobbies, I read much less. And I still am unsure about what I’m going to do with my life. My life is mostly software, so this morphs into the question of what tech I should rely on. And build my interface to the world with.
I mean, the post I did just now is a good summary for one of the choices I faced (and continue facing) this year: Scheme vs. Common Lisp. And one of the posts starting 2025 was me being tempted by Lua. Having been exposed to Clojure at my dayjob, I realized that I really don’t want to do Clojure. Might be because it’s my dayjob? No, it’s the language being super restrictive and opinionated. Being raised in a Common Lisp tradition, I just cannot accept paradigms forced on me. I want ugly things and I want some dangerous ways to handle them.
So yeah, I got back to Common Lisp for the time being. And wrote about it all year, deriding indentation styles, sharing my generic writing convention, designing languages by reusing CL guts, mourning lost compute, exploring logical pathnames, customizing my REPLs, editing Lisp line-by-line (remember this one,) and finally sharing my unconventional dependency vendoring setup.
8 posts out of 27 (I am quite a steady writer, it seems) are about Lisp, and it’s probably the most prevalent topic. Because I love Lisp and really cherish all the experiences I had to live through with it. All these 2019 sideways glances my girlfriend shot at me when I was reading r/lisp. Instead of spending time with her. My GOFAI classes where I finally used CL, in 2020. The very best job at Nyxt stretching until the end of 2023. And the malleability of the language when I need to design something novel and pretty (Lamber) or reproduce something historically important (Eliza/Laliza) (remember this one please.)
I value portability and reliability, that’s what Lisp put in me. That’s why I still hold onto ed(1) and keep updating my line-based editing setup. Remember this line-by-line Lisp editing post? That’s a direct consequence of me trying to do Lisp in ed(1). Not only that: I became ed(1) versions collector, has gone crazy with metaprogramming in it, customized the hell and syntax highlighting out of it, and wondered on the better regex in text editing. I wrote two implementations following Brainfuck Enterprise Solutions’ ed.bf: ed.bas in BASIC (yeah, I had a moment of BASIC writing) and ed.modal in term-rewriting Modal (parentheses regex were part of that obsession with Modal.) Because writing ed(1) all over again is a fun language benchmark and pastime!
I am proud to be “that ed(1) person” in your Fediverse feed, and I promise to keep it up.
It was somewhat forced and boring, but I also continued a good tradition of Lambda Calculus posts. Suffering from normal order, building beautiful cons-tructions, earning for Clojure macros, and suffering from normal order recursion… yes, again. With that, I covered most basic topics needed to get started with LC. So I’ll likely take a long break from writing about it. Unless I fall down the Binary Lambda Calculus optimization rabbit hole, of course.
No matter how interesting tech is, one often gets bored tinkering with it. So this year I had many moments of excruciating boredom that only one thing was able to dispel: writing. I started enjoying and valuing putting ideas onto the (metaphorical) page. And I realized that I don’t only program. I also think and feel.
Arguably, I’m not a good thinker, with my attention span getting even shorter over the year. And inability to read anything substantial due to time limits imposed by work and depression. (I’m still in a depressive plateau of my bipolar oscillations. That makes me less productive and willing to live, but I struggle on somehow.) But god do I feel and pour that into the writing! I find that LLMs and the kind SUCK, I like ugly things, I crave transparency in the tech I use, I value explanations over algorithms, I am acknowledging and accepting my stupidity/stuplimity, and I don’t want to restrict myself like many of my fellow programmers.
And, something that enfuriates me, much like many people relating to it on Hacker News: I just fucking want to select the text! Because, it turns out, I care about Web, hypertext, UIs that empower, and being a good Web citizen. I want people to finally use CSS where they unnecessarily turned to JS. (Or, maybe, I use CSS too much?) And I want to read R7RS on the Web instead of opaque PDFs!
The whole year was set to K-pop. Starting with this banger by aespa. Continuing with compassion for NewJeans. And ending with hyping to BABYMONSTER. I’m not ashamed of this preference and the fact that some of my projects… are called after K-pop things. Like Laliza, my implementation of classic Eliza AI system, with name being a shameless scrape of LISA’s single. Or aed, my editor jokingly and dramatically named after aespa.
With this soundtrack and this year filled with computering and feeling, I wish: to find a real Lisp / Scheme job (help appreciated) and to finally have time to read, hack, and cry. And, to you: to continue the search for yourself and to find harmony in the fact that the search never ends.