I disagree with your disdain for IDEs... I hope that you are not totally misleading the people who will learn from your book because learning how to use the capabilities of Visual Studio or any decent IDE is very valuable. How are they going to debug complex graph data structures in their CS class if they don't have a great debugger? How are they going to understand the power of intellisense in modern programming? How are they going to learn about compiler flags without getting a headache? How much time are they going to waste compiling and linking with the commandline?
I like the no-copy-paste and straight notepad approach trust me. It works for everyone, it's a solid way to get these things into your brain. You need to write code, there's no way around it. But to tell people to never use IDEs because they are bad and they make you a bad programmer is BULLSHIT.
IDEs are bad for you. It's much better to simply use a real programmer's editor that you can craft into being what you need. In fact, I can usually take vim plus cscope, exuberant ctags, and ack and demolish any code base you throw at me. Similar with emacs and other power editors.
IDEs are usually useful if you're stuck using them to build GUIs or use specialized build tools they require.
Please dear wizard, here's a list of requirements for a fellow programmer that he can currently do with Visual Studio and wants to do the same with vim:
- find in files (in vim, not in bash)
- replace in files
- rename symbol (uh-oh...)
- quick open file in project (visual assist feature)
- list of files in project (not in directory)
- build system (something easy to use, not that make bullshit)
- go to declaration/definition ( sometimes I get a list of 30 matches from ctags, so I would like something that actually works )
- view call hierarchy (callers, callees)
- code completion (something that works and is easy to use, like in visual assist)
- watches
- breakpoints in disassembly
- step into disassembly
- memory view while debugging
- edit & continue
- memory (data) breakpoints
We're talking about large C/C++ codebases, obviously. You might get 50% of the features above after tinkering for a few days/weeks/months with your vim with (probably) much worse usability, when you could have used Visual C++ from the get-go and enjoyed a "real programmer's editor", as you put it.
This bullshit religion you are introducing only hurts potential programmers because instead of focusing on getting their job done they have to reinvent the wheel every time they have to write a line of code. I'm not saying it's a bad thing for a young mind to experience the horror of having to debug a 500.000 LOC codebase with a stone-age debugger, just for the kicks ("that's how your old man was programming back in the day, son"), but when you have to meet deadlines and release something going vim-only can quickly become a liability.
Sadly in Linux you don't have the luxury of Visual Studio and I've tried doing portable C/C++ in Windows (with cygwin and various make programs). It just doesn't work right.
But I agree with overall sentiment. We shouldn't try to make programming hard. It is hard already.
I do all of this with just vim and some tools, and I do it with any language, any text, anywhere on any machine in and OS without having to buy anything from anyone and I can change how all of it works any time.
How can IDE be bad for me? It's like saying a hammer is bad for me (Sure it is if I don't use it responsibly or correctly). And on C front I'd agree. There are no really good IDEs for C/C++ and the way they work/are used wouldn't benefit much from an IDE.
If you are more productive in IDE over text, what is the benefit of using text editor?
and what would they do if they cannot use this functionality, for example debugging something embedded, or something that cannot be debugged the way you pointed out
I like the no-copy-paste and straight notepad approach trust me. It works for everyone, it's a solid way to get these things into your brain. You need to write code, there's no way around it. But to tell people to never use IDEs because they are bad and they make you a bad programmer is BULLSHIT.