iLemming
I keep thinking of maybe I should learn to become ambidexter mouse user, and if I ever have to become a VSCoder (I pray not), I still may have to. For now, Emacs and vim and reduced mouse use are working.
I don't blame you for immediately rejecting the rest of it. But do hear me out: the point about the inevitability of invention does have real support. Historians call it multiple discovery - tons of things have been invented independently - calculus, the telephone, the jet engine, to name a few.
Neural nets, GPUs, and the scale of Internet text made something like LLMs close to inevitable. Of course, we could debate forever whether any of these on its own was ever inevitable. The point is - society tolerates any cost of a useful invention for the benefit of saving time. So it's reasonable to assume this will be the case with AI as well, which is really happening as we speak.
Sometimes, people conflate Emacs crashing and hanging, the latter can happen, but almost never requires killing it - you just send `pkill -SIGUSR2 emacs` from the shell and it unblocks.
Some modern "artists" take it to the extremely provocative form, a lot of what gets mocked as lazy conceptual art is lazy not because it's offensive but because the idea could be stated in one sentence and the object adds nothing to it.
I suppose we're witnessing a new form of lazy, lame art - concepti-slop "art of coding". Which could often be described in one sentence:
> How the fuck is this even on the frontpage?
Well, it's quite simple if you think about it. Intelligence is all about awareness of the imminence of death and the finite amount of time given to any of us. So, we humans intrinsically evolved to make the most of it. The majority of the tools we create have the ultimate purpose - to save time. Even money is nothing but a way to cut some time. It's not really about time but experiences - we want to have as many and as rich as we can get, and we innately try to cut time somewhere else, so we can use what we saved for better experiences.
Therefore, inventing cars was an easily predictable event. There's not a single hypothetical timeline or dimension where humans don't end up with cars - to transport things and to travel faster. Similarly, it was always simply inevitable - we would have invented something like LLMs, sooner or later.
Cars required significant sacrifices - they are absolutely deadly machines, they kill thousands of people every single day, kill wildlife, endager our own existence, and we're kind of okay with that. I can absolutely assure you, if someone tomorrow invents a gravitational jump travel that allows moving things between continents in minutes, even with a success rate as low as 10%, we would still be using it.
So, yes. We can't un-invent cars and AI, the only way to move forward is to adjust to this new reality and extract the best possible experiences, preferably by not robbing other people of their - i.e., enjoy life while it lasts, it still remains finite.
I believe it's because of Lisp. The majority of the new generation of programmers are mostly just clueless about how Lisp remains relevant and how things in the Lisp-world are calmly and quietly getting just built, problems solved, solutions developed - without fanfare and pomposity.
The biggest digital bank in the world uses it. Nubank, using Datomic as their primary tech driver, grew from ~12M customers in 2019 to 131M in 2025 - almost 1000% growth in less than a decade. Not an exactly faithful comparison, but for JPMorgan getting to their ~80M customers took dozens of acquisitions and 150 years.
Netflix uses it. Amazon uses it. Apple uses it. Walmart built their billing system in it. Cisco's entire cybersec stack is on it. Even NASA uses it.
The number of Lisp dialects just this past decade has exploded - you can find practical, working Lisp pretty much for just about any runtime now. The amount of Emacs Lisp on GitHub alone should be at least surprising - you check the GitHub lang stats, and may think how weird - a non-general-purpose PL, that has always had one and only intent, is among some top languages, why? r/emacs subreddit gets daily, pretty much daily announcements of some new Emacs packages. The age of LLMs is now practically proving the value of Lisp. Working with an AI harness through a Lisp REPL is palpably a better experience - agents work faster, spending far fewer tokens.
It is honestly just baffling how almost every PL out there is restrictive, in the sense that they impose seemingly weird and arbitrary nuisances, while Lisp has always had just two necessities - structural editing and REPL-driven workflow. Those are the only two things anyone needs to grok in order to efficiently build with it. And even these are not hard requirements.
It gets frustratingly exhausting to dispel a constant barrage of biases. As if people just don't want to believe their own eyes to see how pragmatically commonsensical it is and always have been.
I just gave you an actual, practical example, not a theoretical one.
Here's another one. I wanted to try eca-emacs, the documentation website sits at https://eca.dev, Cisco Umbrella, for whatever stupid reason, blocks the entire .dev domain, and every corporate laptop comes pre-installed with Cisco Secure Client that you can't remove. I submitted a ticket, and then wasted my time on a ridiculous exchange with the "big security guy," who decided to take a power trip and refused to have the website whitelisted. Despite it being absolutely harmless. I don't know where the fuck he's purchased that condescending tone and posture. In the end, I said: "thank you for your time," and hoped to never ever have to talk to him. Then I set up a SOCKS tunnel through my local Linux box, installed the FoxyProxy extension, and voila - I'm never ever going to have to complain about a blocked website.
> sysadmins had the final say
And you can always find workarounds. Those who want to do something look for a way, not excuses. You're a goddamn computer programmer. Maybe act like one.
I know exactly what you're talking about. I am a die-hard vimmer and used vim plugins in every editor/IDE/browser/shell/multiplexer/WM/etc. I use vim bindings system-wide. I control my music, switch between apps, swap and resize windows - all without lifting a finger from the home-row.
I spent almost a decade living in IntelliJ. I had many direct conversations with Andy Vlasovskikh (he's the maintainer of IdeaVim then). Gary Bernhard (Destroy All Software, wat guy) once said: "there's no vim-mode, there's only Vim" in the sense that no single editor or IDE, not a single vim emulation layer properly works, they all have glaring deficiencies - to the point that it can drive any experienced vimmer truly mad.
With one notable exception. Evil-mode in Emacs is just wonderful. It's the best vim-emulation layer, to a certain degree it works even better than in Vim/Nvim. Weirdest thing - it makes you forget it's not a built-in feature of Emacs. I'm honestly very happy with it, because I don't know, otherwise, I might have never convinced myself to ever give Emacs a try.
These two ideas - vim modality and the grand idea of Lisp - are possibly the two best things that I am forever grateful to my younger self for forcing me to learn. I can't even comprehend being a professional software developer and not grokking them.
> My Emacs config file is a hodge-podge of little snippets I don't properly understand
People giving you truly time-saving advice. Use a good model to unhodge-podge it. You can even ask it to explain every single Lisp snippet it makes, to the detail and granularity level you prefer - want a big picture, please; would you like nitty-gritty details - ask no more. It's not like it's gonna build a "massive configuration" and absolutely will refuse to make it make sense to you.
Oh, I stand corrected. I was confused, I thought Divya did it experimentally first, for the Emacs Reader. Turns out minad really was the one who had the original prototype, and Divya wanted to use it in the Reader, then multi-people effort to make it work on Android, Mac and finally making it into the master branch. And yes, no LLMs - at least nobody publicly mentions any use of them.
Develop hacker's mindset. Don't anyone tell you how to use your computer. Especially don't let your computer to dictate you the rules. Always remain in charge.
When I started at my current job, they gave me a laptop that came installed with crap called ABR - Admin By Request. Basically, for anything that required sudo, they'd force me to run it, then click a prompt: "yes, I need the [fucking] access," then another little prompt comes up, asking for "reasons," and you're supposed to type it, to which everyone on my team types some random number of letters (because there's a minimum), then press Ok to get three-hour access.
I dealt with it for exactly three days. After that I just wrote a script that periodically checks if I have the admin rights, and then waits for me to get idle (so no sudden focus stealing), then runs the sucker, sends the request, etc. I don't even see it anymore - just happens. I'm not playing their stupid games, their "security theater", I have a job to do.
Just the other day I made this comment on the topic of "nvim vs emacs", I think it fits here well:
> editor choice shouldn't be treated like soccer or religion
Oh, I wish there was a choice here. I've been vimming since 2010, the idea of vim modality is an excellent, practical, beautiful model. It's a fantastic idea and the ideas do port. That's why I've used vim-bindings in every editor/IDE/terminal/browser I used.
Emacs, however, is not an editor. It's a Lisp REPL loop with a built-in editor. The only contenders in this space are Light Table, Nightcode, or Lem and none of them truly can compete with Emacs (at least right now), because you can't just ignore forty years of package development. Maybe some more people start using Lem and keep vibe-coding a huge body of Elisp into CL and then maybe we finally see something that can potentially dethrone Emacs.
It's not sports or a religion - you can feverishly love trains and despise airplanes, but you've got to admit, trains just can't replace airplanes, regardless of what you love and believe in.
LOL. Skiing is torture as I never understood the point of having to wear boots, since I rather liked sneakers.
This is absolutely uncalled for. Álvaro is a long-time Emacs advocate and maker of packages, long before LLMs. I guess that's why some Emacs adepts, despite their long-time commitment and contributions, refuse to be called "programmers", notably Prot (Denote), Karthik (Gptel) and Jonas (Magit). They all keep saying they are not, maybe just to avoid this kind of ungracious stigma from random people.
Some FOSS developers are one of the rarest kind of people we need to cherish and respect. They who sustain unpaid, often thankless maintenance work on important infrastructure for years, sometimes it becomes their life purpose, with zero direct financial reward, while fielding entitled bug reports. They don't anticipate any recognition, but at least let's not call their work substandard, it's not like you're getting taxed for using it.
I can also just ignore every conversation - sometimes, posted urls are more valuable than what people blabber and fight about. Imagine having to extract all the urls on the page. Some might say: "Hey, there's a browser extension for that", but...
a) the extension has its own keybindings, dissimilar UI, etc.
b) it won't ignore HN's internal URLs, so you still need to grab the list of URLs and then remove the ones you don't need in... your editor. So why not just use that, to begin with?
In Elisp, it's a one-liner. You can bind it to a key. I can also utilize sparse tree search, e.g., to collapse everything while leaving every reply that contains a keyword. With imenu, I can jump to any thread. With indirect buffers, I can compare two parts sitting on opposite ends of the discussion. I can narrow to any point, add some text, and then send a request to an LLM.
And guess what? All these things are still the same for a Reddit discussion. So when I use it in Emacs, I can still use the same ways of manipulating and extracting value.
What? Why? Who the hell would ever forbid anyone from using a tool that literally makes them more productive? I mean, as the Russians say: "If drinking vodka at work interferes with your job, quit drinking vodka... at that job"
In practice we're seeing the biggest waves of development in years. r/emacs gets daily, daily! announcements of new packages. Many of them, if not most, are not some AI-sloped trash - they are very useful. Some package makers go above and beyond - even though vibe-coded, they still show good design decisions, proper tests, hand-written documentation. Canvas stuff most likely wouldn't be possible without LLMs.
Luckily (for us), Emacs is the king of text-processing and text manipulation.
Experts often do forget their own "beginner's journey", but I honestly never remember struggling with where windows do appear in Emacs. Either because I never had any eccentric expectations of how this should work, or maybe because I had far bigger issues back in my beginnings. Maybe I didn't notice anything until I found Spacemacs, which had just started gaining some traction back then. I don't remember if they've done anything to improve beginner experience, but then, moving off Spacemacs I might have gotten annoyed, which iirc forced me to understand display-buffer-alist. And then trying Doom, I believe I had to explicitly disable all their novice-aimed improvements and rely on display-buffer-alist settings I was already comfortable with. So, I guess it's a difficult balancing game - need to make it intuitive for the beginners, while not screwing it up for the experts. I mean, if Emacs v32-33 ships with "improvements" that somehow mess with my display-buffer-alist, I'd probably get mad for like two minutes. But that's me, if anything like that to happen, I'm sure it will generate some 2000-message-long discussion thread on emacs.devel.
Clojurescripters for example can use nbb with the connected REPL and build web-scrapers while interactively "clicking" on buttons and exploring DOM directly from the editor.
In case of Emacs, it is not [just] an editor, technically it is a Lisp REPL loop with a built-in text editor. That's why you can virtually change any aspect of it on the fly, without ever having to restart it.
What's crazy that this allows to have pretty much anything "programmable". Even keyboard macros in Emacs are just series of Lisp instructions. You can compose a macro and then look at its underlying code, modify it and execute it.
---