← Back to context

Comment by shaokind

18 hours ago

I've absolutely engaged in making personal software [0] thanks to the age of LLMs.

But to be honest, my time using Emacs didn't teach me to "build personal software". My Emacs set up was extremely brittle, and it was a nightmare when I tried to use it across Windows & macOS. My university project was written using an unholy combination of org-mode & some workflow to create a beautiful LaTeX file, and I couldn't tell you how to recompile it (if I were to try, I'd probably get an LLM to literally translate it to LaTeX).

I want my life to have as little maintenance as possible, and making my own software for everything isn't always compatible with that.

[0]: A rewrite of a NETFX application in Rust, simply because the 20 minute installation time irked me: https://github.com/bevan-philip/wlan-optimizer

Have had the same emacs setup on linux, windows and macos for 15 years. Honestly, it's the best thing in my computing life.

  • Paralleling Linux and MacOS is pretty simple, but the last time I tried to make the same config work properly in Windows it was a nightmare b/c of the path issues.

    • In the past when I've seen someone extolling Windows/Linux compatibility for something as complex as a detailed Emacs setup, they were using WSL or one of the wrappers like Cygwin rather than native Windows compiles of the tooling.

      2 replies →

> I want my life to have as little maintenance as possible

I honestly can't even relate to what that even means. I'm a programmer - my everyday job is all about changing the behavior of computer systems - local, remote, cloud, embedded, etc. Requirements change, scope fluctuates, problem space evolves - grows and shrinks, accretion is unavoidable. I need to routinely move between language stacks, different data types, formats, CLI and web tools, protocols, paradigms, OSS and proprietary apps.

That means I have to constantly adapt, my control plane has to keep up with the flux. Automation is key - you must develop a mentality for that - every little annoyance can be and shall be automated. That is an endless, non-stop transformation of my workflow - continuous maintenance of my tooling. But that is not some toilsome, reactive maintenance.

Thinking that you're a programmer that doesn't want to constantly build software for your own sake is a delusion - it's like a cook that hopes to turn on the stove only in the restaurant, but won't touch a knife at home.

Emacs is the cook's home kitchen. I'd say there are two kinds of maintenance: reactive (fixing breakage, keeping up with churn) versus generative (shaping tools to match your evolving understanding). Programmers instinctively dislike the first and should be drawn to the second. Emacs is almost uniquely suited to generative maintenance because the tool and the work share the same substrate.

I get your complaint about Emacs specifically, it's a common: "too much work to set up", which usually means: "I don't want to invest before I get value", which honestly is not wise, strategic thinking. Treating Emacs as the universal tool for minimizing total maintenance burden over a career, over a lifetime is.

  • I think your analogy breaks down because lots of people don't program "anything and everything". I can relate to being considered quite an expert in certain programming domains among my peers, but there being all kinds of potential programming around me that I just don't find interesting at all.

    Programming is also so much broader than something like cooking. It would be like saying that "you make your living manipulating matter, how could you not want to manipulate all that other matter?" to a chef. Their cooking doesn't necessarily make them want to mend clothes, remodel houses, devise new pharmaceuticals, etc.

    • Yeah, sure analogies are... well... some made up shit we use, because we have imagination. And the imagination can take you for a spin.

      I just disagree with why Emacs heavy users are often "blamed" to be obsessed with their tools "needlessly". What does it even mean to desire "as little maintenance as possible"? Okay, let's say I don't use Emacs (which is like I dunno over 90% of existing programmers in the world). What, I won't be writing bash scripts for my work? Okay, maybe I really hate Bash. Python then? Lua? Perl? What the hell are we even talking about? Of course, a programmer will do these things. Every programmer does. There's not a single case where a programmer doesn't tweak, re-tweak, personalize, improve, readjust their tooling, their scripts, browser extensions, the set of apps they use. Why is it Emacs and Vim considered a "perpetual maintenance", and I dunno, VSCode is "it just works™"? That's just not true. If I didn't use Emacs, I'd be inevitably re-inventing some workflow automation in some different way. Or what, bash-scripts ain't no software?

  • To summarize: your claim is that choosing to spend your energy on anything other than your emacs setup is a catastrophic failure in terms of ROI, a delusion, and a sort of dereliction of identity as a programmer. My rebuttal: dude, relax.

    • Are you even reading what I wrote? What's with the childish tone, someone dropped your keyboard rate when you're a kid or something? Emacs is a tool, not a religion. There are plenty of talented, accomplished programmers who can relate to what I said, and never even used Emacs. There's no "Emacs setup" for me, just like there's no "ricing my browser" - I do expect my web browser to work exactly the way I want (or at least as much I can get out of it) - that requires managing extensions, keybindings, extension settings, security options, disabling some annoying features, etc. It's an instrument, and requires the same type of "maintenance" and tweaking. Sure, it might not be as constant as for Emacs, but after all - web-browser is a targeted tool, Emacs is a universal one.

      9 replies →

> I want my life to have as little maintenance as possible, and making my own software for everything isn't always compatible with that.

So LLMs are good enough to make personal software, but not good enough to maintain them?

  • It's usually easier to build something that maintain it for extended periods of time, particularly if that maintenance requires adding new features.

  • Less about the capabilities of LLM software, but more about my willingness to spend time to deploy them, debug them, etc.

    I don't want to spend time on dealing with change. Hence why I'd rather purchase tools, where I pay for the developer to a) prepare for any maintenance, and b) will perform the maintenance needed.

    (Of course, the maintainability of software with current generation LLMs depends a lot on how well your architecture them. I've got pure vibe coded slop, that can be very difficult to wrangle.)

  • > So LLMs are good enough to make personal software, but not good enough to maintain them?

    I mean... yes?

    Maintaining software means looking at issues opened on github, keeping your own list of feature requests and bug fixes, deciding if and what to fix, deciding when to fix, and if you're lucky/cursed, reviewing PRs from randos. ANY of this means diverting attention from your day job/client work/kids/???.

    Can some of this be theoretically automated by an LLM? Uh, maybe? But I'm not sure how much that would help.

“Those who say they lack time to build tools are precisely the ones who cannot afford not to.”