I've been fascinated by a special type of programmer, the devs who don't use IDE features like: -autocomplete/copilot -LSP - go-to-def What allows them to just rawdog text editors? Do they have superhuman coding ability? I asked them and here is a thread of what they said:
First off, all the commenters seemed to all be experienced devs who were around before LSPs or even autocomplete existed Nearly all of them used Vim Some of them were even around when autocomplete first came out and was "complete garbage"!
@zack_overflow Actually had to do this in my first job because our monorepo setup was too complex and the LSP didn’t work. It was also pre copilot. It really teaches you how to memorize a codebase
@zack_overflow As in real life, certain circumstances call for raw dogging it and some do not. Editing some code on 211BSD on a PDP-11? You better know vi. Trying to get something done at modern speed in VSCode? You better have GitHub Copilot...
@zack_overflow Google my man. Before google we used to copy code out of books. Yea, like actual paper books. I use vscode now though, and all the fun stuff above.
@zack_overflow I only use limited go-to-def. Haven’t been able to get LSP to work for C in my editor, plus I grew up writing code without it so no bother really.
@zack_overflow this somewhat applies to regular vscode with intellisense use too but professional vim use in particular is a strong indicator that this person can keep the whole program in their head and will actually code + be relied on to fix bugs instead of dicking around in cursor all day.
@zack_overflow I use a sublime text with a little bit of autocomplete. It has a plugin called supercalculator which allows me to eval Python expressions directly in the code. Copilot produces too much code that is wrong, so I have to waste more time deleting.
@zack_overflow Hardcore eMacs user and dev who didn’t know ides existed for 5 years while doing my PhD. The answer is to git gud at one code language and grow from there. Do it enough and it’s like speaking another language
@zack_overflow You learn to code 10x faster snd more accurately
@zack_overflow aka. GET OFF MY LAWN old school != superior skill
@zack_overflow Try rawdogging Ansys APDL with only the docs as lookup in a browser tab, that'll make you a real man
@zack_overflow Sir it’s called emacs and I can open up a definition file and search the line needed without touching my mouse in like 2 seconds.
@zack_overflow It's just slow. I haven't used any IDE features , besides syntax highlighting, for first few years of programming and I managed to get my changes commited to Blender. I don't think you can learn anything useful from that, it's just slow.
@zack_overflow I am one of these. The skill for that? Some memory. I do think that as soon as you rely on the tools you list, then you lose memory capacity.
@zack_overflow No one mentioned the OG auto complete method for Javascript dev? You live code in dev tools console and it uses real time inspection to see the methods and properties on any variable. Personally I do this all the time still. Not that I don’t use Typescript auto-complete too.
@zack_overflow i write code like this and i really like it, it helps me get in the flow. i think ide-s can be awesome, but just add a lot of overhead a text editor doesn't, so i don't use them for most personal projects. it's very relaxing to just open a text editor and start slapping out code.
@zack_overflow When developing a browser (Chromium) i used to have no autocomplete since it is usually broken for such a large codebase. Then everytime i compile, takes forever, and stupid mistakes happen, after enabling clang, boom, i was technically a 10x engineer.
@zack_overflow one of the old guard HN posters, Ed, said he only used a plain text editor he explained that it was a tortoise and hare situation he started slower, but because he typed every character and traversed the docs manually, he knew his codebase inside out and was faster in the end
I've been coding for 45 years, and I don't use any of these features in an IDE. I never needed them to write some incredibly complex system software, so I've never seen them worth spending my time on. Instead, I prefer to manage complexity through good architecture and well-thought-out APIs between modules that perform well-defined tasks.
@zack_overflow I still prefer riding a horse to work because it keeps me in touch with my physical senses and I don't need to pay MOT on my horse. Who cares if it's much slower 🐴
@zack_overflow previously worked on kernel level stuff so 90% of the time my dev environment was on a remote server, it was just too much of a hassle to setup. it does force you to learn the code base i guess
@zack_overflow I once saw a developer (@_andreas_jung iirc) at a Zope Conference in maybe 2001, coding in Notepad on Windows, not even Notepad++. I knew he was really good and was shocked to see him using just a plain text editor for coding. He inspired me to not worry about editors, too much.
@zack_overflow How do you program without keeping it all in your head? This idea you can offload your understanding to your tools is exactly why code is so bloated and the quality so poor in general. You are literally admitting to not knowing what you are doing.
@zack_overflow My first formal instruction was in C with a simple command line dos text editor. I usually work off older (underpowered) hardware which always made those IDEs feel heavy and sluggish. So vim was the editor of choice paired with tmux.
@zack_overflow For me, it's syntax highlighting... I can look at the same bit of code with highlighting and grok what is going on instantly, but without ... I might as well be on the farm shoveling pig shit.
Just like the GPS analogy I don’t think there is a right or best way here. I always use GPS and rarely get lost or stuck in traffic, my dad doesn’t and he rarely gets lost though probably gets stuck in traffic more. Sometimes it’s impressive when his local knowledge beats Google, other times he loses. It’s good in my view to try and understand each way then take the best of all of them. Getting stuck in one way of doing things is rarely ideal.
Programmers have an unhealthy tendency to fetishize their tools. Even if it could be proven beyond a doubt that programmers are more productive with IDEs, certain programmers would still choose the less productive text editor. That’s fine for a labor of love but it’s not rational for getting things done.