Interview: Drew DeVault on an AI-free version of Vim
50 points by runxiyu
50 points by runxiyu
I recall how I felt when I learned that “pull down to refresh” was introduced by social media apps with the intentional design goal of replicating the experience of pulling the lever of a slot machine, to exploit the same flaws in human cognition which create gambling addictions.
Loren Brichter invented pull-to-refresh as the sole developer of the third-party Twitter client Tweetie. The above (stated as fact like an LLM does) was not the motivation. It was thoughtful UI design:
JK: How did you arrive at the pull down and release to refresh interaction in Tweetie 2?
LB: Tweetie 2 simply took this idea from Tweetie 1, that reloading was simply “loading newer”, and “loading newer” put new messages at the top of the list… and activated the action based on a finger motion that you were already doing. Why make the user stop scrolling, lift their finger, then tap a button? Why not have them continue the gesture that they are already in the process of making? When I want to see newer stuff, I scroll up. So I made scrolling itself the gesture.
But they’re addictive. Pull-to-refresh is addictive. Twitter is addictive. These are not good things. When I was working on them, it was not something I was mature enough to think about.
- Loren Brichter
https://www.theguardian.com/technology/2017/oct/05/smartphone-addiction-silicon-valley-dystopia
No one here actually talks about vim-classic and its merits.
I tried it first. I was first curious to see what I'd lose over vim 9. Turns out, not much, a quick fix and work arounds for a couple of plugins and I was up and running.
What I did find shocking was a real visual speed up of all operations involving plugins and external calls, fzf etc. No need for benchmarks or anything else for me: it was visually faster; vim-classics showed less 'random' latency introduced between actions and virtually no blocking TUI moves.
I've removed all other versions but vim-classic since. Highly recommended.
people have been looking for shortcuts and quick, messy answers for as long as any of us have been doing the job, a sort of “move fast and introduce complexity” approach which leaves excellence out of the equation entirely and leads to things like a micro-dependency culture and all of its problems.
It's funny Drew says that, because he recommends people hand-roll hash maps each time they need one. Doesn't quite seem like bringing excellence to the table to me -- rather, a sprawling mess of unvetted, non-rigorously written hash tables seems a lot closer to "move fast and introduce complexity".
Personally I want experts to write a great hash table algorithm with all the careful analysis they can throw at it, and then everyone to benefit from their ongoing and continuing expertise. I think a world in which systems programmers had to roll their own hash tables would be much less excellent than the world we live in today where an increasing fraction of systems software is being written in Rust.
And more to the point of the article itself, there is very little discussion on how LLMs can be used to achieve greater degrees of excellence than would be possible otherwise, as a small but significant minority of us have been practicing.
I don't see how Hare's stance on generics is related to an article about the harms of LLMs. Even if you disagree with Hare's design choices (which is completely fair btw), that doesn't invalidate his point about how the most common selling point of coding agents is allowing people to write code faster (and thus messier).
I also find that responses to articles like this one almost always ignore the ethical arguments raised. The fact that LLMs are unethically trained, are rapidly accelerating the rate climate change, and are explicitly linked to the rise of fascism. These alone negate literally any benefits they could bring. By paying companies like Anthropic, you are directly supporting what they do. And like, there's a discussion to be had about whether individuals are responsible for the actions of these corporations, and you can go down a rabbit hole of something something no ethical consumption under capitalism, and that all comes down to personal ethics, and like yeah I think there's maybe a discussion to be had there. But the issues are so commonly side-stepped, in favor of talking about stuff like achieving a "greater degree of excellence" with them, and like, I can't help but feel like none of the points raised in the interview were actually meaningfully refuted.
I agree that there are ethical concerns with using them. I keep being flagged here for making (what I thought is) the obvious point that there are ethical concerns with not using them. Technical excellence has an ethical value of its own in the modern age when many people are unwitting users. It is at least a little bit unethical to not strive to fix major defects and vulnerabilities in software people actually depend on, using the best tools available.
The thing is that as much as people would like to pretend otherwise, LLMs present an ethical dilemma with no clear answers.
I can't help but feel like none of the points raised in the interview were actually meaningfully refuted.
Even though the excellence bit was one of the main points in the interview? That's more a sign that you personally found the ethics point more convincing and are indexing heavily on it, and less that "none of the points" in the interview were meaningfully refuted.
edit:
I don't see how Hare's stance on generics is related to an article about the harms of LLMs.
It's related due to the consistent pattern of not being able to engage with the strongest version of the opposing argument. Indian philosophy has a notion of purvapaksha, where a treatise would first spend time presenting the strongest version of every opposing argument before making its own. Not saying I live up to this all the time, but it is something I think about a lot.
It is absurd to imply that the pursuit of software quality is intrinsically ethical irrespective of the cost.
If you were offered a team of human slaves to inspect and revise your codebases, would you consider it unethical to refuse owning slaves on the basis that not owning slaves places you at a disadvantage for maintaining your software?
If you were offered a box with a button to press that would remove a bug from your codebase and also kill a random human being you don't know, would you consider it unethical to refuse to hammer the button as fast as you can?
As programmers, we have access to a wide range of tools and techniques for improving the quality of our code. The vast majority of these tools and techniques do not have anything remotely resembling the observable, present-day negative externalities of LLMs, let alone the plausible future consequences that continue to unfold and manifest throughout our societies and biosphere. The real costs of LLMs annihilate their potential benefits to a truly staggering extent.
You're responding to a comment advocating for steel man arguments with a straw man counter-argument?
Also, Rain didn't say or imply that, "the pursuit of software quality is intrinsically ethical irrespective of the cost" in their comments.
Setting up strawmen continues to be a mark of intellectual unseriousness.
I think people are confused in that it sounds like you are comparing software excellence on the positive side against the numerous other drawbacks on the negative side as if they were equal.
I certainly think the good and bad parts are on roughly the same ethical plane. I realize some others think they are not (which is the most charitable explanation of how people drag in slavery). But I think, for example, that a certain amount of plagiarism is an acceptable trade for finding software vulnerabilities.
To me a lot of it is about taking versus giving back to the commons. LLMs take much from the commons, and many uses of them do as well. But other uses give back to society in a meaningful way.
But now you’re focusing only on the copyright aspect. What about the impact on climate change, concentration of wealth, biases in training/guardrails, the slop onslaught on culture etc etc etc?
I just think a lot of that is the inevitability of unrestrained capitalism and not specific to LLMs, the latter just being the newest vehicle. But I also want to take a step back and point out that I have never seen any of the ethical objectors to LLMs even try and make the ethical case for the other side. (Maybe some have, in which case point me to them!) If you're bringing things to the ethical plane (which, I want to emphasize, I did not start off by doing in this conversation) it is imperative on you to present the strongest ethical case in each direction.
I also find that responses to articles like this one almost always ignore the ethical arguments raised. The fact that LLMs are unethically trained, are rapidly accelerating the rate climate change, and are explicitly linked to the rise of fascism.
From a distance these are all first world problems and even in context not the most important.
For examples data-centers are No14 and No16 in the “2026 pollution problems” list. The ethical thing is also very “meh” … the average Author was already in a dire situation. It’s between the NYT (and other media conglomerates) and OpenAI / Microsoft (and others)… on the other hand LLMs allow Joe Somebody to access very specific and technical context aware info like never before. I find that last part an improvements for society at large. So the ethical part is about sharing profits and we can discuss that, or some implementation detail but not about the tech per-se. The tech like it or not, is amazing.
So, educated groups of ppl discuss these things and try to find optimal solutions. Energy efficient ways, silver linings, etc. saying “don’t use AI because it’s evil” in this context is like pissing against the wind. You are only going to get wet, and you are cutting yourself out of the discussion.
Ps. Ofc there are red lines that IMO should not be crossed. My spectrum is probably a lot wider I suppose.
And more to the point of the article itself, there is very little discussion on how LLMs can be used to achieve greater degrees of excellence than would be possible otherwise, as a small but significant minority of us have been practicing.
I didn't expect Drew to make any pro-LLM points. But I did expect something of substance related to programming, and there wasn't much of that in the interview—to the extent that I'm not 100% sure it's on topic for Lobsters. There was just one paragraph about the practical reasons why to fork Vim (albeit without much evidence), and the whole rest of the interview was a political/social discussion about why AI is irrevocably ethically tainted.
I adhere to the belief that the electron is not inherently good or evil, so obviously I'm going to disagree somewhere with Drew. I was just hoping he would give some evidence for which he has a front-row-seat, e.g., here's the bug report rates for Vim versus Vim Classic over the last three months.
I was just hoping he would give some evidence for which he has a front-row-seat, e.g., here's the bug report rates for Vim versus Vim Classic over the last three months.
I mean, there's not really much to say. Vim Classic is in maintenance mode; it's not getting any new features. Obviously Vim will have more bug reports, regardless of whether it's vibe-coded. (Vim Classic was also only created just over one month ago.)
The entire existence of Vim Classic is ideologically motivated. There's not much else interesting to say about it, and that's exactly the point.
There's not much else interesting to say about it, and that's exactly the point.
refreshing. Humble, convivial tools[1], not rockstars, please.
Until the ecosystem moves on without you. An Editor software isn't a typical tool that is done at some point and needs only bug fixes. It needs to constantly evolve: LSP/MCP/$HANDY_FEATURE...
It's funny Drew says that, because he recommends people hand-roll hash maps each time they need one.
This sentence really needs "when writing Hare code" tacked on at the end for fairness.
there is very little discussion on how LLMs can be used to achieve greater degrees of excellence than would be possible otherwise, as a small but significant minority of us have been practicing.
The thing is, as long as you're as outnumbered as you are, the other type of LLM users can cause an enormous amount of damage nomatter how good you guys are. So in a very sad, but also very real, way you don't matter for the topic being discussed.
This sentence really needs "when writing Hare code" tacked on at the end for fairness.
I don't know -- has he ever suggested that Hare doesn't represent his vision for systems programming?
The thing is, as long as you're as outnumbered as you are, the other type of LLM users can cause an enormous amount of damage nomatter how good you guys are. So in a very sad, but also very real, way you don't matter for the topic being discussed.
I try my best not to be nihilistic in life. To the extent that I can help turn the marginal user towards harnessing their power to build more robust systems, my words and actions do matter — people send me emails and come up to me at conferences to tell me I've changed their views on the subject (in both directions!). I pin my hopes on the fact that engineering does have to interface with reality, and that solving meaningful problems well does matter at some level.
I don't know -- has he ever suggested that Hare doesn't represent his vision for systems programming?
Fair enough point. I don't know. On the other hand, he himself continues to write quite a bit of software in languages other than Hare as far as I know. So it seems that he doesn't think it fits all purposes. I don't know.
I try my best not to be nihilistic in life. To the extent that I can help turn the marginal user towards harnessing their power to build more robust systems, my words and actions do matter — people send me emails and come up to me at conferences to tell me I've changed their views on the matter. I pin my hopes on the fact that engineering does have to interface with reality, and that solving meaningful problems well does matter at some level.
Of course. I didn't mean to imply that you or what you do don't matter. Just that many of the problems that come with lots of people's use of LLMs to produce code remain problems nomatter how well you yourself use LLMs.
And I want to add that there certainly is a point at which there are too many dependencies. But there's also such a thing as too few dependencies, and I think Drew advocates for that. Real excellence comes from understanding that most hard things involve tensions between competing concerns, finding a productive way through them, and being willing to revise one's views on the optimal balance as new data comes in. It absolutely does not come from setting up strawmen ("micro-dependency culture", "most grotesque rejection of this discipline") and then easily demolishing them.
I think its great to fork VIm and do whatever you want with it. I'm a daily Vim user, love it, have no intentions to change. However as someone who is on Vim 9.2 right now, I'm not sure why I would go back other than "I have a giant ideological problem with LLMs".
The Vim9 script has been a decent improvement as well as the dozens of other new features, some of which I use pretty often (https://vimhelp.org/version9.txt.html#new-9). Support for stopping profiling a Vim script: :profile stop and dumping the report to a file: :profile dump is pretty great. Some of the spell checking changes have been awesome.
I'm not clear why I would switch other than its an ideological stand against LLMs where I know a (much smaller team) is now maintaining the thing I used to pay my mortgage.
or those who can afford the miracle of widely available cheap phones that the industry has made possible and universal in the last decade, but which is coming to an end as demand for cheap components is entirely consumed by AI datacenters.
I wonder if the unit-cost path from ENIAC to cheap phone could be paralleled in the AI supply chain?
No, based on Drew's thought leadership, I'm sure basic economics is "coming to an end".