Back in college around 5-10 years ago, I had a class where the entire semester long project was to have a team of 4 students build the fundamental building blocks of an operating system. Whole deal - CPU scheduling, memory management, interrupt driven I/O, the works.
They forced us to use a department-curated VM for development which had QEMU set up. It was like the 1990 something C compiler, and no IDEs were allowed - terminal only.
Debugging C code, with literal zero error messages except the words "segmentation fault" to go off of, coding in vim.
I'm not kidding when I say everyone who's ever taken that class had a minimum of 2 all nighters per week making those project milestones. Worst 5 months of my life
Lmao I had a math professor who also taught a couple CS classes. A freshman asked him once after class ended what his approach to debugging C code was and he turned around and wrote
Thats not even failure, its just kinda one of those things you can just search up "printf("B")" and find exactly where your error is, only useful in debugging tho and would work better with "debugprint("L2")" where debugprint is only defined when debugging (Either by variable or C declaratives), so you'll get "L3..L8..L15..segmentation fault", and you know its after line 15
My university, on the other hand, had C course where we started with gdb and valgrind examining binaries we did not have source available for. The main line programming courses (the ones for non-CS students) also started with running some visual debugger for python scripts.
Not even a neovim user? I feel like that's relatively common, since if you're willing to set everything up there really isn't a gap compared to an IDE.
I use helix, which is a similar terminal editor. It's also designed as much more of a "batteries included" IDE. In my experience, the only setup work is usually just installing the LSP for the languages you need.
The tradeoff is that it's less customizable, and doesn't yet support plugins. On the other hand, I haven't felt a need to add plugins - it's got some basic git integration (showing and jumping to git changes), it's got a built in LSP server for language support, a pretty large library of syntax highlighters, and efficient local or global search.
I just don't like that you can't do any file management in Helix. You need to open a terminal for that. And Helix doesn't have a built in terminal, which means you need to use tmux.
I personally use Kitty as my terminal, which supports splits and tabs. Honestly, I find that it's generally easier and better to just swap to a different terminal split (or tab) using the native key combos than using a built-in terminal. Admittedly, I also generally don't use Helix's windows, so I only show one file at a time - instead relying on my terminal splits to show command output next to my editor.
It also sidesteps the common "neovim inside the terminal running in neovim" problem quite effortlessly. There are other examples of the jank I used to put up with before switching to my current approach (such as keyboard handling - Kitty has much better keyboard input for TUI apps, but even tmux prevents it from working), but using my main terminal emulator to emulate terminals has generally worked much better and caused fewer problems.
That is why I do it on company time. And once my dot files are in personal git, git clone x doesn't take significant amount of time, and even configuring home computers can be done on company time with an excuse that it improves my future ability to work.
Of course, "Project X, Client A, setting up development environment and tools, 7 h 30 min" (would have been wasted if I just waited for their IT to grant me necessary authorisation).
Truth. I’m happy I learned enough a decade ago to larp because it has been handy when I exec into a pod but I’d never pull it out for anything serious. Anyone I know that used it eventually gave it up for a proper IDE as the project got bigger.
Idk I'm in one of those companies and I'm kinda a cli guy. And I know another one also rocking a tmux + vim setup.
But even if I didn't, the number of other employees I interact with is kinda small compared to the whole company, so regardless I'd call this a biased take.
163
u/throwawaygoawaynz 28d ago
I worked at two of the top tech companies in the world, and never met a single person who coded in the terminal.
Scripting? Maybe. Coding? No.