Once again it seems like I don’t even have an IQ ¯\(ツ)/¯
just run everything thru Doom Emacs. Terminal? emacs, git? emacs, ide? emacs, WM? emacs.
It really is a great OS
I’m on the far left.
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.
Just use a magnetized needle;… the way it was always inteneded to.
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?
OCR
Very slowly
With a lot of consideration
Just take a picture and give it to AI
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
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.
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.
Or TUI.
need ai integration to code
Nah that dude is on the left, and he makes 250k per year
Why do you need a text editor? Just use radiation to bit flip the memory into the configuration you need.
Just need a magnetized needle and a steady hand.
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.
This statement is technically correct, the best kind of correct.
compiler or interpreter
I mean yeah I need a web browser, but I’m not coding in it.
Quite. You don’t need an IDE to have a compiler lol
What, you dont program in binary? What a noob.
No I program with a magnetised needle and a steady hand.
I do, I just use abstractions and metaprogramming layers to do so more efficiently. Sounds like your workflow could use improving
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’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.
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
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.
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.
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.
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, 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 😅
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
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 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 🤷
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?
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.”
Nah, you gotta copy/paste the code somewhere!
Every self-taught programmer I’ve seen starts off hacking at something in Notepad.
I started with mIRC script editor, which was only a tiny step above notepad.
I upgraded to notepad++ I’ll have you know!
I spent years using Notepad++ as my professional editor. We were a Windows shop and all of the IDEs available were much slower and buggier. It’s a surprisingly decent introduction to the idea of what a good text editor can be.
Depends on where you start. When your first contact is HTML its not too unusual to use a text editor for development.
esp. if you started at the time when all you had for designing page layout were frames…
I interpreted it more like saying the first place people learn to code, especially if you’re not self taught, is in a text editor like vim or emacs.
I think that’s how this meme is mostly used (least knowledgeable to most) but if we are getting pedantic we have to acknowledge the axis is labeled.
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
Funny cause I don’t use debuggers and never have, but if you take away the auto complete I’ll hate my life
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”?
Because I don’t hate myself
javascript moment
Most text editors like vim/emacs/ect have ways of using a debugger.
I remember vim being a bit involved, but the performance was awesome.
But then if you put enough bells and whistles on text editors, do they become an ide?
But then if you put enough bells and whistles on text editors, do they become an ide?
Yes
gdb works great without an IDE, and many text editors have autocomplete.
It depends on what you do, but generally I can’t argue against a debugger.
9000 IQ programmer starts every project rolling their own debugger instead of dedicating 8GB of RAM to vscode
I think you are not looking at the full picture - there are developments (arguably everything back-end) where a debugging system is absolutely not essential and in many cases (multithreading) outright useless for some types of bugs.
Feel free to not use a debugger for your software. But I don’t hate myself so I’m going to stick to using one whenever possible.
Saying it is not essential and saying it is generally useless are two very different things.
I believe that is a vast minority of developments. And tbh multithreading debugging is a breeze in C# on Rider (except race conditions, those will always be tricky, but also easily identifiable).
And I believe you are very wrong in that belief. However, a reliable statistic is not the first search result that I can find, so we’ll have to disregard the disagreement on that point. You lost me at your C# multithreading reasoning though. A debugger will always interfere with the processes you are looking at, hence making debugging of multithreading-related errors a game of whack-a-mole.
A debugger will always interfere with the processes you are looking at, hence making debugging of multithreading-related errors a game of whack-a-mole.
It’s a very pleasant debugging experience when you can easily switch threads, have them log what happened first, check the variables in the thread at the moment in time it was hit (vs now), etc. etc.
Most concurrency problems disappear at the pace of a debugger.
Joke’s on you, with LSPs most text editors are full IDEs.
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
😭






















