HNHacker News
TopNewBestAskShowJobs

iLemming

3,022 karma · joined February 14, 2015

@iLemming

[ my public key: https://keybase.io/agzam; my proof: https://keybase.io/agzam/sigs/La7qFk8YkbwfkgeSx7vkBWBba2f3HIpZyNVxUHvshbU ]

submissionscomments
iLemming··on Emacs Turns 50
You're hypothesizing of something you haven't even tried. What's the worst possible outcome? You end up with more shit you don't understand. You then just throw it away and go back to smaller amount of shit you didn't understand well to begin with.
iLemming··on Emacs Turns 50
You're the one complained:

> 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.

iLemming··on Emacs Turns 50
> afaik minad didn't use LLMs to write it.

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.

iLemming··on Emacs Turns 50
I don't know how long ago "your early 30's" was, but for me this was never a question - I'm a die-hard vimmer, I use vim bindings everywhere. It's practical, why force myself to relearn my typing with every new tool I use if I really don't have to? Emacs, as it turns out, vims much better than any other concrete vim implementation. Even though I did learn some basic Emacs vanilla bindings, I'm still a vimmer. Vimming in Emacs never was a big obstacle for me.
iLemming··on Emacs Turns 50
> makes maintenance easier for the sysadmins

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.

iLemming··on Emacs Turns 50
> someone has made the wrong editor choice

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.

iLemming··on Emacs Turns 50
> extending Emacs is pain as I never understood the point of lisp

LOL. Skiing is torture as I never understood the point of having to wear boots, since I rather liked sneakers.

iLemming··on Emacs Turns 50
> I wouldn't put too much stock in the agent-shell business. It's got junior dev written all over it

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.

iLemming··on Emacs Turns 50
Don't tell anyone: https://github.com/agzam/.emacs.d/blob/main/modules/ai/gptel... There's a fear among third-party Claude tool-builders that Ant will close the shop very soon, making it hard for them to use it. Like they did with OpenClaw. I'm sure some inventive hackers still doing it anyway.
iLemming··on Emacs Turns 50
> Will probably die

Did anyone ever tell you how badly you suck at prophecies? This unfalsifiable prediction has enormously bad track record: people have called Emacs dead since the 90s, through XEmacs, through every IDE wave since, through Atom, Sublime, nvim, VSCode, Zed, etc.

I'm sure "Anti-AI core community" drinking themselves to oblivion and chugging anti-depressants seeing how many packages for AI integration people keep building¹ and they just can't do anything about it. Bruh, there's literally ongoing threads about built-in LLM support in emacs.devel, the latest one is not even a week old.

Magit being slow is almost entirely git subprocess spawn and output-parsing overhead, which exists in any git porcelain, not something specific to Emacs or elisp². Blaming Emacs for that is blaming the UI for the engine. I use Magit on Mac and it is not slow. It is slower than on Linux, but it ain't unusably slow.

Define "decent harness". First of all you're conflating the layers - ACP is a wire protocol; asking a protocol to be extensible is illiteracy - protocols are meant to be minimal and stable, that's literally their job. eca and agent-shell are ordinary elisp, with hooks, advising, keymaps, same mechanisms every other package uses. If that layer is hookable and advisable, it's extensible in every effing sense; extensibility was never supposed to live in the protocol underneath. Darn, I'm extending eca from inside fucking eca buffer, da fuk you even blabbering about? Whatever, skill issue. Next.

¹ https://www.reddit.com/r/emacs/comments/1uwm3c0/the_state_of...

² https://news.ycombinator.com/item?id=49634649

iLemming··on Emacs Turns 50
It absolutely is. Consider this. I'm reading this thread in Emacs. Why? Am I obsessed with it? What's the point? Well, I can easily read not just the thread but also the article posted while ignoring all the fluff - graphics, banners, ads, etc. - to extract a piece of plain text.

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.

iLemming··on Emacs Turns 50
> Emacs is considered unprofessional in a lot of places

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"

iLemming··on Emacs Turns 50
> AI is not going to encourage any growth in that small elite

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.

iLemming··on Emacs Turns 50
We just got lucky. Emacs Lisp, unlike most other Lisps that are data-oriented is particularly text-oriented. If instead of LLMs we've gotten LGMs (Large Graphics Models), Emacs wouldn't have time to catch up and keep the pace with other graphics-oriented IGEs (that would've replaced IDEs)

Luckily (for us), Emacs is the king of text-processing and text manipulation.

iLemming··on Emacs Turns 50
> some sort of package which makes common buffer configurations easy for novices

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.

iLemming··on Emacs Turns 50
The biggest value of gptel is its API. I can send a request anytime, anywhere, from pretty much any buffer. I sometimes ask things in the middle of typing a message, or I can ask a model to reword the prompt I'm about to send to another model.
iLemming··on Emacs Turns 50
Any Lisp is good at editing live process, you just need to give it a REPL. Because of homoiconic nature of Lisp, every step in Read-Eval-Print-Loop differs. Lispers sometimes refer to Lisp REPL as the "true REPL", because non-homoiconic REPLs are rather "interactive shells" in comparison.

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.

iLemming··on Emacs Turns 50
Of course¹, but I warn you - it may feel massive, I do tons of (at first) seemingly weird stuff. Like OCRing images in my clipboard (which is now a separate package²)

---

¹ https://github.com/agzam/.emacs.d

² https://github.com/agzam/clipimg.el

iLemming··on Emacs Turns 50
It's almost not even funny, but I tangle all my dotfiles from an org-mode file. The files it generates are all read-only - to discourage me from writing in them directly. This makes my OS config semi-immutable. Bootstrapping a system from scratch takes no longer than a few minutes and the biggest bottleneck is properly getting access to that dotfiles.org and installing Emacs. This has worked for years and that's why I never had to really learn Nix. I guess Emacs for me is the "true OS", and whatever on top is "just kernel stuff"
iLemming··on Emacs Turns 50
I grokked display-buffer-alist and never had any problems since. With any other editor or IDE (and I used more than a few), it never occurred to me to even want to do anything complex with window placement. There are things I would love to see getting improved in Emacs, but managing windows and frames is not the one.
iLemming··on Emacs Turns 50
eca and gptel remain my main "bread-n-butter" atm.
iLemming··on Emacs Turns 50
Well, there's over 35 (and counting) different Emacs packages for LLM integration. And that's just the ones that were published.

https://www.reddit.com/r/emacs/comments/1uwm3c0/the_state_of...

iLemming··on Emacs Turns 50
> biggest things that have come out

Just ask Claude or whatever to hook up gptel and eca (or agent-shell). You don't even need to read anything, just literally talk to the LLM. The first step is to get to the point where agents can change Emacs from the inside out - and then, that opens the floodgates for any ideas.

Just yesterday I decided to make it possible to detach a video I'm watching (and of course controlling directly from Emacs) from my browser. The active YT video stops playing in the browser, loads mpv, and seamlessly continues, while keeping the time, speed, and volume. It's now possible with the new Canvas API to play videos directly in Emacs; at some point I may try to figure that out. Why? Well, just because I can. With Emacs, the limit is your imagination and nothing else.

Craziest thing? I never had to restart, recompile, rebuild anything. I was watching a video, thought: "hmm, a floating window would be nice..."; without missing a beat, just typed the prompt and made that happen within minutes.

iLemming··on Emacs Turns 50
50 years old and feels more modern than any of the crap folks try to sell you "as the editor of the future". Emacs is the true editor of the past, present and distant future.

Modal editing was supposed to pull users away - Evil mode made vimming better. LSPs were supposed to kill it - only made it better. Electron-based crap was supposed to make terminal-native editors look ancient with a built-in terminal, extensions, and a polished UI. Emacs got vterm, eat, and ghostel. GitKraken-like GUIs were supposed to make the git CLI unnecessary. Magit is widely considered better than any git client that exists, GUI or not. Tree-sitter was supposed to require a "real" language server architecture to get accurate parsing. Emacs 29 absorbed it natively, and font-lock, indentation, and structural navigation across major modes got noticeably better. Obsidian and Notion keep trying to overcome it - Org-mode just keeps getting better. AI was supposed to make it outdated - only enhanced it.

For half a century, humanity has been searching for an Emacs-killer. All the while, Emacs has been a killer app all along.

iLemming··on Emacs Turns 50
Emacs is a serious tool, you choose it first and only then prioritize on the OS. It's like complaining that editing videos with Adobe Premiere on Linux is not a very solid experience, or something like that. Well, if you're a pro video-editor and you must use Premiere, then maybe you need a non-Linux box to do that?
iLemming··on Emacs Turns 50
> I don't know LISP (any LISP!) at all

I'm a Lisper. I switch between Lisp dialects, sometimes multiple times a day. Since I got my LLM harness to work from inside of Emacs I no longer need to even look at Lisp that it generates for my config.

It is very justified use of AI - if anything breaks, it breaks for me, and mostly just for me. And whenever something doesn't work as expected - I don't even try to debug it anymore - my harness has introspective capabilities - it can run the profiler, monitor changing vars, debug and just fix things.

Now is the best time to try Emacs. If people before could complain that Lisp is weird and not easy to grok, it's not a valid complaint anymore.

iLemming··on Emacs Turns 50
> IDEs and now Claude have taken over

100% completely opposite experience. Emacs is hands down the king of any kind of text-manipulation. And not only on the composition side. Most editors and IDEs are focused on the composition side of things - making text, adjusting text, amending text. And code btw, is nothing but structured text.

Emacs opens gates for text consumption - I'm reading this entire HN thread in Emacs, just like I consume Jira, Slack, Telegram, Reddit; control YT vids, my browser tabs and history, etc. I search through Splunk and Datadog logs, Wiktionary entries and just general googling - all done in Emacs. I browse million-line codebases on GH without ever having to clone them. If there's a piece of any kind of text in the computational vicinity to my active Emacs instance - this laptop and all connectable devices, I can easily make use of it.

And this gets incredibly important in the age of LLMs. I can read, manipulate, navigate, search through, diff, sort, group, slice, dice, salt and pepper any kind of text. Give me just about any other editor instead and I immediately will feel handicapped.

IDEs that are not malleable (by design) are at an exact disadvantage. I can change any aspect of my editor in the middle of typing this very comment without ever losing the state, the context, or my mental focus. No IDE even hypothetically capable of doing any of that.

iLemming··on Emacs Turns 50
> keep their Emacs configs/setup "lean"

With my last bankruptcy where I tried to dissect my 12K LOC config to identify the bloat and the crap I no longer needed, I found very few pieces that weren't used. Turns out, my config was already modular and lean, in the sense that everything I had there had a practical reason to be in there.

Once I started using LLMs to deal with Emacs, I decided to add a bunch of tests to run them in CI, just to prevent regressions. My config since then has grown to 26K LOC + 35K of tests. I consume 250 third-party packages, plus about 100 built-in libs.

My Emacs starts and loads within a second. I have no problems such as freezing, breaking or leaking memory. With all this stuff I have in it, it can run for days and weeks and its memory usage on Mac stays within a comparable range with the Slack app - around 500MB.

I never understood this obsession with keeping Emacs lean. Bruh, throw some shit into it, let it burn, it'll chug on any large amount of Lisp and still give you the smoothest ride ever. What's the point of keeping a colossal beast under a mountain and feeding it a low-calorie diet? It's like digital abuse. Emacs these days is capable of rendering Doom-level graphics, it's offending to use it like notepad.exe.

iLemming··on Trump Says He Has 'Right' to Run for Third Term: 'They Cheated Us'
> Yes, but Nazi atrocities would not be legal in our system.

As I already pointed out, shit doesn't have to be "legal" (or otherwise) to be bad or immoral. Separating migrant kids (just one of the many examples) from their parents is not "legal", yet it has happened, it is happening now, and will continue - that's the deliberate plan for this admin.

> I just don't believe that the system is at any serious risk

I assure you, US citizens who were deported and got separated from their kids do have a completely different perspective. Democracy is essentially and practically dead in the US, at least for some categories of Americans.

iLemming··on Trump Says He Has 'Right' to Run for Third Term: 'They Cheated Us'
> he does not have absolute power.

And that's the point! He's inflicting SO MUCH damage even without it. I don't even want to imagine what he'd do if he'd had it.

Page 1 of 34Next →