I feel like this has more to do with what field you work in and what language/paradigm you use. Especially if you’re working within some bullshit walled garden, you may not have a choice. I’m a terminal jockey myself, but I mostly program in C, so my code is procedural and to the point. Maybe I might want some fancy smart refactoring feature if I worked in a language where half the code is boilerplate or glue.
If I have the choice though, I don’t see any advantage to an IDE. It’s like the combination of many tools rolled into a single, bloated UI with about 60% of their original functionality. And I guess it lets you build “projects” and choose which files will be built. That part never made sense to me. I don’t need a program for that! Just delete it dog. It’s in the repo!
IDE:
- Text editor
- Source control
- Debugger
- Compiler
- Terminal
- File explorer
I’m my opinion, these programs are just better as separate programs.
(Rant) One thing that grinds my gears… Some IDEs will leave you with the dumbest possible directory structure imaginable. Like actively hostile toward us terminal jockeys. Remember, we are repeatedly typing these things out like cavemen. For example, c/c++ developers who put their headers in a separate, but identical directory structure. Oh and let’s do full taxonomy and go 10 directories deep. And what the hell, capitalize random letters and throw in some with spaces into the directory names for good measure. These things don’t have to matter to IDE people, but it is something to be mindful of.
just run everything thru Doom Emacs. Terminal? emacs, git? emacs, ide? emacs, WM? emacs.
Emac?
… s?
These meme spreads misinformation under the disguise of wisdom.
Those on the right side are too blind in their arrogance and probably seldom face challenging tasks in large codebases.
In my experience way too many people are ignorant in regards of negative effects of AI usage and the data centers, both in regard to global environmental problems and the catastrophic consequences for the local population in the vincinity of large data centers. And there is the partially illegal acquisition/processing of training data, esp. the permanent storage of the original copyrighted works. That kind of ignorance is far worse than being ignorant to the couple of use cases where AI can be helpful. And that’s why I dislike AI-fan-boying.
Had some juniors who was git diffing in the terminal PRs of 20 more files with 200 changed lines. A newly appointed senior told them that was the best approach. Needless to say there had always to be some follow up push after they opened the PR on web. U dont need ai, but you need a fucking GUI.
You can take away my auto complete, performance monitoring and all that jazz but you can’t tell me a debugging system isn’t absolutely essential if you actually want to finish a project in a reasonable amount of time
Why debugger when print?
Embedded systems 😁
That’s what a single red LED is for, right?
Is the single red LED solid, or is it flashing Morse for “please kill me”?
Solid, always on. Whether the code runs or not, you know there’s an error in it so prepare to go through all of it again.
I disagree that a person with low IQ would think its possible to code using a simple text editor. If anything he needs IDE more than any one else.
Yeah, it doesn’t fit the template but the low IQ version would be more like “You only need ChatGPT for coding.”
Every self-taught programmer I’ve seen starts off hacking at something in Notepad.
Why do you need a text editor? Just use radiation to bit flip the memory into the configuration you need.

nuff saidJoke’s on you, with LSPs most text editors are full IDEs.
You don’t even need a text editor, you can write it on paper.
But both are terrible options if you want to actually get stuff done, now that we have better tools.
How are you going to build that application you wrote on the paper?
Very slowly
With a lot of consideration
Mate people feel hacky if they use VIM to write code. Double the time, and corrections commits all the time
Oh yeah, vim motions are peak. Still not a substitute for a decent IDE, though.
Vim is great at what it does (help you write/change text faster), I just don’t think that’s the right goal to pursue when it comes to software development.
Still not a substitute for a decent IDE, though.
It is with plugins, however. I’ve used neovim for years at work and it has LSP capabilities and grammar-based syntax parsing. So it provides lots of IDE-like features on top of its excellent text-editing features. Nevwrmind that it integrates with the terminal much better than IDEs.
So I couldn’t disagree more with your statement
Neovim seems more like an IDE than a text editor from what I’ve heard of it, yeah. I’m talking about plain old Vim, though.
I use IntelliJ with a vim plugin, so I get the motions, but also an IDE. IntelliJ has excellent terminal support. For Java, there’s no better setup.
You also need a compiler or interpreter because wtf man you gotta run some stuff during development
If you write C code in a text file and rename the file extension to .exe and try to run it the CPU will do something.
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.
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.
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.
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
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.
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 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.
On the contrary most people I know who “really know their shit” are using neovim and cli tools.
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).
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.
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 spentlegitimately slackingmultitasking. 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, 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 😅
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…
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
I have never seen or known a serious professional
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 🤷
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?
I have no desire to work on a large project in a plain text editor.
That is the beauty of it: no one forces you to do so.
Mmh nobody forces me to, but someone did just imply I have bad hair for doing so 🤔
Okay I will concede your point. :) You do have bad hair g
😭
















