this post was submitted on 23 Jan 2026
496 points (92.3% liked)
Programmer Humor
28738 readers
2025 users here now
Welcome to Programmer Humor!
This is a place where you can post jokes, memes, humor, etc. related to programming!
For sharing awful code theres also Programming Horror.
Rules
- Keep content in english
- No advertisements
- Posts must be related to programming or programmer topics
founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I have never seen or known a serious professional who preferred to work outside of a full featured IDE. All the most skilled and highest paid developers I've ever known were more adamant about using the IDE when compared to the less skilled developers who preferred to do things more via command line and text editors. Just my experience. I often suspect that this meme is shared and liked by people who aren't really professionals. Perhaps I just haven't encountered them yet.
Edit: It seems I indeed haven't encountered them! Although I do stand by my original point to the extent that it seems there are disciplines where IDEs are best and disciplines where they aren't. I enjoyed reading everyone's responses and thinking about areas of software that I don't usually think about. It's given me lots to look into. Thanks everyone who responded nicely! Also, I definitely did not mean to imply that specialists working without IDEs are amateurs or anything like that! Much respect to everyone out there making software.
I often code directly on the machine control, including single blocking a running program and adding a line while the program is paused.
Editor on older CNC machines usually doesn't even do lowercase and often has limited alphabet keys. Think '80s green or amber screen.
A machinist's coding workflow can be real fucky. I go from CAM which is like a highly complex visual programming IDE to notepad. If I'm being fancy I use notepad++ for syntax highlights and diff'ing.
Just for reference, because programming is not one big tent, as far as I know most people working professionally developing for the Linux kernel, gcc and glic uses only a text editor and "Unix as your IDE". I never tried myself but I have a feeling that any IDE with git integration would just immediately cry trying to interact with the kernel or gcc git repo. Even gits own PS1 status feature slows to crawl in this repos.
The largest repos in the world are monorepos (the major tech companies). IDEs can handle those codebases just fine (might be modified).
So, you've never known any Unix hackers? I worked for a student datacenter when I was at university, and we were mostly vim users; as far as text-editor diversity, we did have one guy who was into emacs and another who preferred nano. After that, I went to work at Google, where I continued to use vim. As far as fancy IDE features, I do use syntax highlighting and I know how to use the spell checker but I don't use autocomplete. I've heard of neovim but don't have a good reason to try it out yet; maybe next decade?
I admit I haven't known any Unix hackers! I guess my type of work had me assuming they would still prefer an IDE. What is it about this kind of development that makes you prefer text editors, if you don't mind my asking?
I think that there are two pieces to it. There's tradition, of course, but I don't think that that's a motive. Also, some folks will argue that not taking hands off the keyboard, not going to a mouse, is an advantage; I'm genuinely not sure about that. Finally, I happen to have decent touch typing; this test tells me 87 WPM @ 96% accuracy.
First, I don't spend that much time at the text editor. Most of my time is either at a whiteboard, synchronizing designs and communicating with coworkers, or reading docs. I'd estimate that maybe 10-20% of my time is editing text. Moreover, when I'm writing docs or prose, I don't need IDE features at all; at those times, I enable vim's spell check and punch the keys, and I'd like my text editor to not get in the way. In general, I think of programming as Naur's theory-building process, and I value my understanding of the system (or my user's understanding, etc.) over any computer-rendered view of the system.
Second, when I am editing text, I have a planned series of changes that I want to make. Both Emacs and vim descend from lineages of editors (TECO and ed respectively) which are built out of primitive operations on text buffers. Both editors allow macro-instructions, today called macros, which are programmable sequences of primitive operations. In vim, actions like reflowing a paragraph (
gqap) or deleting everything up to the next semicolon and switching to insert mode (ct;) are actually sentences of a vim grammar which has its own verbs and nouns.As a concrete example, I'm currently hacking Linux kernel because I have some old patches that I am forward-porting. From the outside, my workflow looks like staring out the window for several minutes, opening vim and editing less than one line over the course of about twenty seconds, and restarting a kernel build. From the inside, I read the error message from the previous kernel build, jump to the indicated line in vim with
g, and edit it to not have an error. Most of my time is spent ~~legitimately slacking~~ multitasking. This is how we bring up hardware for the initial boot and driver development too.Third! This isn't universal for Linux hackers. I make programming languages. Right now, I'm working with a Smalltalk-like syntax which compiles to execline. There's no IDE for execline and Smalltalks famously invented self-hosted IDEs, so there's no existing IDE which magically can assist me; I'd have to create my own IDE. With vim, I can easily reuse existing execline and Smalltalk syntax highlighting, which is all I really want for code legibility. This lets me put most of my time where it should go: thinking about possibilities and what could be done next.
I'm one of those nano weirdos. I mean, I get why people use vi/vim, but I'm a lazy man who has the nano shortcuts hardwired into my muscle memory. It's definitely not as full-featured as vim, but it does what I need it to do quickly and easily. If I need to just quickly drop into a file and do a find/replace, takes me maybe 3 seconds.
Also, to share an ancient joke from the dawn of computing: emacs is a great OS, I just hope someone makes a decent text editor for it eventually.
I know more than one person (I think 4, including me) who code for a living and essentially live in tmux.
Ok, seriously question. How does one go from using a full featured IDE like Jetbrains' stuff to something like neovim? Every time I've tried I've lost patience. I do use vim itself all the time (it might even be multiple times each hour). But I can't seem to bridge that gap to do full development in it.
For context, my day job involves working on a fairly large C#/Angular codebase that extremely messy, poorly laid out, and in constant need of fixing.
My side project is a somewhat small, but rapidly growing, rust application.
Writing the code itself is very similar to using an IDE: with very little config effort, you have stuff like autocomplete, syntax highlighting, LSP errors, function signature hints, 'jump to definition', git integration, etc. Moving around is just a matter of building up the muscle memory. Finding things across the codebase is also easy with tools like fzf and Ag.
Like IDE users often do, executing and building the code can be done through the command line.
More complex operations like refactoring are where IDEs have neovim beaten by a mile. Although I haven't spent time researching it, I don't know if it's possible to have that kind of advanced functionality within neovim.
With recent AI tools (a lot of which, at the end of the day, are CLI tools), the delta between neovim and a full IDE has shrunk further because (for better or worse, probably for worse) people are doing less of the actual coding.
I get that. What I'm referring to is the process of "getting used to" neovim. Every time I've tried it, I end up reverting back to an IDE because I'm faster there due to familiarity and comfort.
I wouldn't be so sure. I've been using various LLM coding agents on my personal project as a way to not do the boilerplate stuff (since I have very little free time), and my biggest takeaway is that outside of smaller snippets I don't want them touching anything else. I've had so many instances where they completely change up a struct (by removing members and adding completely new ones) for zero reason. Other times I give explicit instructions to not change a specific file or remove specific variables, and it just does it anyways.
The real issue is that LLMs are incapable of considering the larger picture at a conceptual level, and frequently introduce new bugs.
The one place I will say I have found LLMs the most useful is writing HTML/CSS/JS. I personally don't like writing those and LLMs seem to be best at that.
The few times I've had an agent refactor larger portions of code resulted in the code being barfed out in a way that took me more time to untangle and clean up, than if I just did the refactor myself.
Im using helix and currently work in a go-project. The lsp for go actually works quite well, and offers actions like turning an if-block around or modernizing certain code-snippets. So at least in theory it should be possible to implement these features for other languages too, though Im not sure what sort of complex operations modern IDEs offer; i didnt find vscode too impressive when i still used it
On the contrary most people I know who "really know their shit" are using neovim and cli tools.
But doesn't neovim have auto completion, a language server, linters etc ?
If you want them
I’m a “serious professional” who has been developing for over 20 years and I’ve generally prefer a text editor the IDEs that I’ve had to use at work. I find that most IDEs are slow resource hogs that don’t give me features that I actually care about over a fast text editor.
The singular exception was Cider when I was at Google. It was fantastic at wrangling their massive monorepo, and integration with their code review and ticket system was nice. Somehow it was snappy and reliable even though it ran in Chrome.
Nowadays I’ve switched to Helix and use LSPs for the languages I use most. For what it’s worth, those are C, C++, Rust and Python. Mostly Rust and Python now.
I started using Helix a few weeks ago and I'm in love. I don't want to spend multiple weekends figuring out the ideal plugin configuration of neovim. Helix seems to do everything I want it to do and nothing I don't, right out of the box.
That’s the first time I’ve heard a positive review of Cider. Compared to IntelliJ it was really lacking.
I’ve never used IntelliJ, or Java for that matter. I’m primarily an embedded robotics developer, so most of the time I’m writing C or a subset of C++ for uC/DSP target, or using SciPy for data analysis and algorithm development. I recognize that probably puts me way outside of the norm for most people and software engineers in terms of process preferences.
Still super cool to hear about your workflow. Makes me wish I had an excuse to spend time experimenting with that stuff.
It's all variable, and highly dependent on the languages you use, the types of applications you develop, your personal workflows, what you learned with and got used to as you were learning to program, and a myriad of other factors. Painting in broad strokes, like what the meme is doing or what you're doing, is almost never correct. There's always nuance.
Everyone has given many good and enlightening responses but picking yours to put the majority of my thoughts in. Yes, for sure I can see there being more specialized disciplines that don't make much use of IDE's. I shouldn't have made the same mistake as the meme! Not to sound like an LLM but "you're absolutely right!" lol. I certainly have my niche and I can see people spending their whole career in a niche where IDEs are superfluous. I like your balanced take on it.
If you're in a jvm or Microsoft heavy environment then maybe so.
The best I know uses mcedit, there definitely life beyond IDEs
The Minecraft world editor? They use that for developing non-Minecraft world software? That's pretty fascinating. What sort of things do they develop with it?
Nah, Midnight Commander's. And literally everything, websites, shell script, data pipelines, satellites...
Many embedded developers would like to have a word with you
I learned to copy/paste website source code into notepad when I was a teenager, so vscodium is more than enough for my needs. I have been full time doing front end web dev, shipping in production, since 2014. I do svelte these days for internal tooling for a well known grocer currently. Having Linux experience as well ever since knoppix came out also helped
I would call vscode(ium) an IDE
It is not
https://en.wikipedia.org/wiki/Integrated_development_environment
When I think IDE I think Visual Studio or IntelliJ or XCode, these extremely heavy single use (originally at least, C# Java and ObjC respectively) behemoths. But then again I was born in the late 1900s. I think of vscode and atom before more akin to a JavaScript successor of notepad++
If it does more than allow you to edit text, then it’s an IDE. Semantic find and replace? IDE. “Go to definition”? IDE. Terminal in the same window? IDE. Git integration? IDE.
I use vscode (or codium when not at work) these days because it's a one stop shop for every language and every feature I could ever need is possible with a plugin. I have used visual studio, intelliJ and others in the past, and i fail to see the distinction from a usage perspective
Not saying you’re wrong, I’m just explaining what I think of when I think ide. I think of visual studio and its integration into windows dev, Xcode and its integration for macOS and apple dev, etc. I think of vscode as a super sublime text in its goals, or akin to vim/helix
I, on the other hand, would not consider someone a serious, competent professional if they were unable to do their job without an IDE. Sure, every serious developer I’ve known uses an IDE or similar for day to day work, but that’s a matter of convenience. In my book “competence” includes being able to do your job without needing your hand held by the IDE.
Oh yes, I definitely agree with this. If you NEED an IDE that's certainly not a good sign no matter what you're working in. Although I can see in certain codebases with huge amounts of macros, functions, weird or inconsistent syntax, that an IDE might be basically necessary to be productive. But for sure agreed that I could do my job just via a text editor if I had to. Sure wouldn't enjoy it though 😅
I think your message ended there, you accidentally copypasted some garbage after that statement.
Hey, I was explicitly being open to being wrong and acknowledging that I may simply not have encountered those kinds of professionals. I don't even think I was being hostile, only saying that from my perspective the idea of this meme is a misunderstanding propagated by people with less experience.
But rather than present any evidence, even anecdotal, taking it personally (even as a joke) serves only to publicly make me look more correct 🤷
I don't think you were hostile, you just have a different experience than others in this thread. At my workplace we design hardware and make embedded systems. Depending on which part of the system you're working on you'll either never leave Visual Studio or exclusively use the unix command line. Both groups are absolutely serious professionals. Not every workplace is like mine; most will have only one of the two groups.
Yes, that's true. It was definitely not my intent to imply that such people are not professionals. They do seem to be a very small part of the overall software developer world. To me it seems like 90% of devs are doing full stack UI, API, DB type stuff. But it probably seems the other way to people doing the other things.
The only people who would take you being "more correct" from any of this are those who don't know much about SW development. In internet lingo, what you wrote in your OC is called ragebait.
Maybe you’re just very easily enraged?