What I'm trying to figure out is whether vi/emacs, and the Unix command line, is actually still a relevant way to do development.
You see, cults that are divorced from empiricism _do_ exist in CS; I'm sure of this. But I'm not sure of whether people who feel such strong love for the command line belong to one or not.
As a pure text editor, Vim seems really nice. However, once I start wanting to do what I take for granted as fairly basic things, I want the mouse and graphics more and more. For example, say I just want to have program output, a couple of code listings, and a visual debugger all on the screen at once across multiple monitors with integration between them. People swear that the Unix prompt is better anyway. However, they all seem to be programmers whose careers peaked in the 70s or 80s too! I'm a Unix neophyte but my first impression in trying to do C programming in vi is that without all the comforts that something like Visual Studio gives me, it just sucks. I'd love to be proven wrong actually, but the people on the other side of the argument also seem to be dinosaurs (albeit genius dinosaurs) who don't even think that trace-through debugging is a good thing. Heck, even Linus lost that fight.
Vi-style editing inside a modern IDE like Eclipse or Visual Studio does seem interesting though.
The power of the command line and editors like vim and Emacs is only apparent after spending a lot of time with them. It also requires a methodical use of documentation.
C programming in vim might seem masochistic compared to Visual Studio. I'd suggest that Emacs offers a richer set of features when building software in C, complete with autocompletion, SCM integration, and build commands.
You can also use Emacs (or just GNU Screen) to have split views of source code and program output and the debugger (gdb) in one window. The real advantage of the command line environment is the ability to create new tools. When you're in Visual Studio or Eclipse it's a much more formal and involved process to create a custom command or automate something and integrate it with your workflow. With the CLI you can just throw together the tool you have in mind in whatever language is most suitable, and integration is not an issue because the shell (hosted in Emacs or not) is an integral part of your "IDE" at this point.
Compared to tools like Visual Studio and Eclipse, the trek is longer but the peak is higher with Emacs and the CLI.
Integrated debugging. (I know gdb is incredibly powerful, but it seems too much to have to reprogram my brain for yet another editor within an editor.) Errors and warnings appearing while I type. Ctrl+click to go to source for any function I'm viewing. Variable and function auto-complete. Integrated documentation for functions that appears as I am typing. Quick and easy navigation of a file hierarchy. (I know vi and emacs allow this but it requires a level of mastery and key memorization for benefits that seem far from clear to me.) Managing project settings. Refactoring.
For someone that has achieved mastery over Unix over many many years, these things either seem unnecessary or they have a substitute (that's perhaps even better). However, I guess I'm wondering if there is a group of people who aren't old programmers from the 80s who started with something like Visual Studio or Eclipse, used it enough to achieve a level of mastery over programming that way (with a brain trained to use the mouse), and then after that found a gain switching to command-line type tools, that was worth the many many additional hours of brain re-training.
You see, cults that are divorced from empiricism _do_ exist in CS; I'm sure of this. But I'm not sure of whether people who feel such strong love for the command line belong to one or not.
As a pure text editor, Vim seems really nice. However, once I start wanting to do what I take for granted as fairly basic things, I want the mouse and graphics more and more. For example, say I just want to have program output, a couple of code listings, and a visual debugger all on the screen at once across multiple monitors with integration between them. People swear that the Unix prompt is better anyway. However, they all seem to be programmers whose careers peaked in the 70s or 80s too! I'm a Unix neophyte but my first impression in trying to do C programming in vi is that without all the comforts that something like Visual Studio gives me, it just sucks. I'd love to be proven wrong actually, but the people on the other side of the argument also seem to be dinosaurs (albeit genius dinosaurs) who don't even think that trace-through debugging is a good thing. Heck, even Linus lost that fight.
Vi-style editing inside a modern IDE like Eclipse or Visual Studio does seem interesting though.