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.
Just use a magnetized needle;… the way it was always inteneded to.
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.
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.
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.
How are you going to build that application you wrote on the paper?
OCR
Very slowly
With a lot of consideration
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.
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.
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).
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.
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’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.
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.
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…
If you’re in a jvm or Microsoft heavy environment then maybe so.
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.
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…
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 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
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
gdb works great without an IDE, and many text editors have autocomplete.
9000 IQ programmer starts every project rolling their own debugger instead of dedicating 8GB of RAM to vscode
It depends on what you do, but generally I can’t argue against a debugger.
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.
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
😭
No one is going to take IntelliJ from me. Tab completion master race!
Lots of simpler editors gained tab completion support over the last few years, thanks to the LSP protocol. I have it in Kate, for example.
I dream of an alternate reality where everyone started using Kate instead of VSCode.
I have worked with MSVC a lot so that might tint my experience but I don’t get what’s so good with vs code. It kind of sucks in a classic windows way, many options for the same thing and often it just doesn’t work. Tried to set it up on linux with godot & c# (🥴) impossible to debug and autocomplete was like every library on earth, except godot ofc. What a pain in the butt.
LSP protocol
The P in LSP, already stands for protocol :)) “Language Server Protocol”
Yeah, to be honest, I’ve given up on that one. “Language Server Protocol” is a classic case of Microsoft naming things.
The two differentiating words are “language” and “server”. It does not specify what kind of language is being served or what it even means to serve a language. And “server” is entirely redundant with it being a protocol. Not to mention, that “server” is the most overused word in IT and therefore virtually meaningless.
For all we know, it could be a protocol for butlers carrying French dictionaries.So yeah, I use the acronym as its name, because it is similarly meaningful while being actually recognizable. And when I need to specify whether I’m talking about the “protocol named Language Server Protocol” or a “Language Server Protocol server” or even a “Language Server Protocol client”, I will just slap that behind the acronym and be done with it.
🫠
Join the Vim cult! We have blackjack! And hookers!
(No guarantee of blackjack or hookers upon initiation).
Already joined the emacs cult. Youre too late.
Don’t worry, cult membership is flexible.
Do you use evil or normal? I’ve tried to switch away from my IDE but honestly the amount of time it takes to learn something new has just led me to not bother
I use the normal mode
deleted by creator



















