Sorry, but I'm not buying it. The difference between developing with or without an IDE is the same difference as driving one thousands miles with an S-class Mercedes or with a Beetle. Both will get you there, but it's not hard to tell which ride was more comfortable and more enjoyable.
Exactly. IDEs were designed for programming. No matter how good your window manager is, an good IDE will always be more comfortable than a bunch of assorted windows.
So what does it give you? One click to a debugger, one click to a compiler, and documentation in a pane instead of a window. Assuming that the person using the IDE is used to programming, I don't think it is a stretch to have a file manager open to the project directory and a terminal ready to type "make run" when changes are to be tested. All that's left, then, is a lightweight text editor with syntax highlighting.
That is so wrong. IDE's do so much more than do syntax highlighting and one-click compiling, especially modern ones, but I can understand your difficulty in understanding this if you've never tried Visual Studio in any depth.
Here are some benefits you get with Visual Studio, for example:
- Code completion / syntax highlighting - accelerates your typing and gets the job done faster and safer
- Convenient code location features that allow you to jump to any class or function instantly, bookmarks allow you to find areas of interest easily obviously, and forward/backward navigation allows you to return to a previously edited part of code without scrolling around trying to find it yourself.
- For C/C++, "Go to Definition", "Go to Declaration", and "Find References" commands allow you to jump to a functions definition/declaration instantly (2 clicks), or reliably find all references to a given variable function without finicky global searches.
- With some plugins, you can globally rename variables and functions by simply right clicking and selecting "rename". Also code completion can be massively improved with plugins, with extremely intelligent searching (works even with typing mistakes, acronyms [like typing 'sep' for 'setEntityPosition'], etc., etc.)
- Can show all your project's files on the left at all times in a nice tree-view, and allows you to sort them in any way you want, regardless of the actual folder structure on your hard disk
- Excellent integrated debugging - you can set breakpoints in the same window you edit in (believe me, this is nice - I've had to use a separate debugger myself), and a very easy to read, extremely intuitive, flawless debugger that's integrated into the code editor where to check a variable you simply hover your mouse over it and it's value pops up (and that's just one way of many - there's custom watch lists, automatic watch lists, etc.), helpful call stack with variable information at every level, etc., etc.
- Push one button on your keyboard to compile, compared to typing "make run" in a terminal is over 10 times faster (amount of keystrokes), no matter how many excuses you make. Better is better.
- Tabbed code pages, similar to tabbed browsing in Firefox, makes it much much nicer when editing multiple files. In addition to that, you can even set up two tab panels if you have a widescreen display and edit two files side by side. Also splitscreen makes it possible to edit the same file between two different locations without scrolling around back and forth.
- I guess you could say "if" you have a good enough windowing system, this could be done by the OS, but as far as I know, no OS windowing system supports all of the features that Visual Studio uses on tool windows: docking to any side of any panel, or as a tab page - not just "snapping" windows together, but actually "docking" as a subwindow, this way you don't get windows covering up each other which leads to a huge mess, and also every tool window can be set to autohide with a click of a button, where it will pop in and pop out as you need it (especially useful for rarely used toolbars - it's only a click away, and will return all your screen space to you when finished).
- When you minimize Visual Studio, everything is minimized all at once obviously, because it's one integrated application. With multiple windows and programs running (a non-integrated development environment), managing other programs without getting messy can be difficult.
- And many, many, other reasons...
If you think about it, IDEs are superior to the methods you're mentioning in just about every conceivable way. All you can argue is that it's not that much better, but if you've ever used a good one (NOT Eclipse) extensively, you'll almost certainly agree that IDEs are way better.