I am not sure what is going on with here recently, maybe I have overgrown the place, or maybe everyday a little by little this place is getting filled with people who shouldn't be talking about CS.
niche /niːʃ,nɪtʃ/ (adjective) denoting products, services, or interests that appeal to a small, specialized section of the population.
The other tooling feels niche to me.
In my current role (contracting at a gov dept in a part that uses Rails and PostgreSQL) it's about 30% using vim or neovim.
In the rest of the department where it's .net and Microsoft all the way, the devs likely have never heard of vim.
(The existence of a Vim config file disables Vi compatibility mode.)
I know only one person from my dozens of developer friends and colleagues who is using neovim.
Your argument is that calling Vim niche should exclude someone from being able to talk about CS. Please rethink your stance and your tone and consider if you’re helping the discussion.
Dijkstra said computer science is about computers as much as astronomy is about telescopes.
I am not sure I agree with that, but it's definitely not about text editor choice.
I have a .vimrc file with LSPs and whatnot. But it was from 3 years back. These days I use VSCode and IntelliJ (depending on language) because they do so many things out of the box. I would say the choice of editor is the least consequential thing in one's understanding of "CS" and programming methodologies. On the other hand, using debuggers, profilers, monitoring tooling can have a real impact on how you solve some problems.
While I don't appreciate the weight of an IDE, the time commitment to create (and maintain!) a config for vim/nvim with LSP, agents, etc., loses out to the relative ease of adding vim-style modal editing to the IDE.
It's definitely possible but I genuinely don't understand how people work for decades and still move their hand all the way to the arrow keys just go move the cursor to another word. Especially when the solution for this inefficiency is so accessible, existed for decades and is widely available in almost every tool. It's something that goes against the spirit of the medium which is all about automation.
He said many stupid things when it was outside of his domain of mathematics and algorithms.
LSP and TS just make it easier to standardize across editors and languages.
Its not that I dislike Cursor, its that I dont have time to put up with its compromises for non-extreme-power-user accessibility. I need an extreme power, cost indifferent, tuned for the margins stack.
That's nothing with a VSCode base that I know about, and I've tried Cline and Roo and Continue and written a bunch MCP servers and I measure it all, not even close.
I bet the neovim people have something just as good.
It's good for what it is but I don't love that I have to change to a whole-ass new editor to get access to the agentic additions, when alternatives that require an API key or a more flexible CLI tool can do a better job.
I’d love to hear more about your workflow if you have time to share!
For Claude Code I'm rapidly switching anything I want "vibe coded" into Hadkell for code, Dhall for config, and check-heavy Nix for deploy. Between that and some property tests that I seed and then have Opus elaborate on, you can put Claude Code so restrictive that it just hits the compiler in a loop until useful code comes out. Its trapped: I hoist CLAUDE.md in from the Nix store so it physically can't edit out the brutal prompts around mocks and lies, and -Wall -Werror in GHC gives it nowhere to hide, all it can do is burn tokens and desperately Web Search tool until it gets it perfect ish or I cut off its money because this requires a real LLM minimum and likely a real programmer. If there's a property test welded into the type system it can't even fail to use a parameter: that's an error Claude.
I have a bunch of elisp in // hypermodern // emacs for things like OpenRouter integration and tool use, but frankly, stock gptel is so strong I always wonder if I'm getting my money's worth trying to tune it into the asymptote.
Happy to answer any more questions.
Also as another Emacs user I'm wondering what lesser known packages or elisp snippets do you use? gptel, magit, tramp and org-mode are the usually touted killer features, but what else do you use in the Emacs ecosystem?
Let me know if you have any questions (or suggestions for that matter, it's rough in places).
I aspire to be a lot faster than this stuff (I've built faster stuff than this) but this is quite a good library (amazingly good by OSS standards, good stuff in this area is rarely OSS, props to the maintainers): https://github.com/crypto-chassis/ccapi, in particular this library does a really good job of being correct across a lot of surface area, it's serious people doing it, and there are forks of it that use DPDK floating around.
If by who's paying for it you mean the big Anthropic bill? My boss's boss is pretty enlightened about the fact that learning how to use AI well is expensive, so when I'm on a tight schedule I get a pretty forgiving budget for the model fees. It's a pretty serious perk in the sense that it's really expensive to master using these things :)
I take it this is all back-end work? Have you tried out one of the Haskell-y front-end languages? Elm?
> Both of these are very (!!!) well complimented by magit, which is so good at AI supervision it seems designed for it, by a genius.
Can you expand a little on this point?
https://gist.github.com/b7r6/84c6ab80c0b8bd5267b8c436e4d00a8...
https://gist.github.com/b7r6/23cfacbf181c9b0447841c798345a79...
The AI stuff doesn't work without this running:
https://gist.github.com/b7r6/449faab9b5be00867f2e8053c610bdb...
That lets me publish my API vendor keys without issues:
https://gist.github.com/b7r6/fe96bd0cc37d72c1991d84d1984371b...
Slow your roll. Nothing you write will matter in six months.
But as a guy who is a known enemy of the Valley establishment to begin with rebuilding from all that? When I say I'm dead serious, I'm being earnest.
If you don't have a family/community safety net and/or a plugged-in nepo golden age network?
Stack cash on hand like your life depends on it, because it fucking does.
signed:
someone who was broke fifteen years ago and has been stacking cash on hand ever since.
And a shitty job is no guarantee of a shitty room now, you see homeless people still in the Best Buy shirt they were wearing when they got laid off, and Best Buy is nowhere near the worst job.
I thought working hard and being really good at computer stuff was basically some kind of bare minimum job guaranteed, that being free with my money might mean not retiring young. Didn't realize tech employment was war.
Wrong. Won't make that mistake again.
But the short answer is no. Not yet.
I'm pretty happy just letting the standalone agent write to the file and then reloading it in my editor.
Though I wish the agent CLI tools would use something like inotify to notice when I've made a manual change to a file that they've recently written and then do a better job of incorporating that change as feedback to inform future edits.
FWIW, Vim (and presumably emacs) can run terminals as well as do things like ssh and ftp. Though I'm pretty sure the easiest thing to do would just be to use the Ctrl-R pattern in vim and have it send curl requests in a different buffer. As far as I'm aware, all the major LLM platforms have APIs that can be accessed through curl (or any other way you want to to GET/PUT requests). Here's something I found with a quick Google search[0].
So I'm not sure there needs to be "a standard" so much as "can it do http requests?" which is yes. I mean with this I think you can also see it wouldn't be too hard to set up and connect to a LLM hosted on the LAN. Could do it all through ssh
[0] https://arjunaravind.in/blog/using-vim-as-a-http-client/
Also, I don't remember the last time when I worked with anyone who writes code and uses Windows.
Anecdotal experiences can lead to a warped understanding of reality; in mine, Windows and non-emacs users are niche.
Anecdotally a lot of managers use Emacs, though that may be an age thing.
(I use emacs for Real Work, unless that Real Work involves a JVM. Still do all the git stuff in emacs/magit, though)