Now think about something like HyperCard. That's an IDE. It's eminently usable and learnable (even friendly), and yet still does all the things an IDE does.
"IDE" doesn't have to be Visual Studio. There have been friendly IDEs in the past, and there's no reason they couldn't be built today except nobody's doing it. There's actually a nasty trend in software development right now that can be summarized as "they're programmers; they don't need usability or discoverability". Look at Git for an example. Ugh. This trend can not die quickly enough for me.
Every hidden thing is a thing that, when it goes wrong, I can't fix. Something "goes wrong" when it's either not working as designed, or it's broken as designed and needs to be reconfigured or otherwise changed: The IDE handles the wrong language, for example, and needs to use a different compiler and have different highlighting and formatting rules.
IDEs that only handle one language are beneath contempt.
Smile when you say that. ;)
"Power user", to me, means someone who knows a lot of trivia about specific software but no underlying theory; none of their knowledge transfers to any other system, so their domain knowledge is constantly being obsoleted. Having some power user traits is inevitable and desirable, but being just a power user is a stage you should strive to outgrow.
I admit that that's just a knee-jerk reaction based on my idiosyncratic definitions.
The 4GL's like WINDEV made this more the case. We saw it on the command line side with COBOL. That and what happened with 4GL's in general should be a lesson that whatever we build for new users better (a) be consistent with more powerful stuff, (b) easily integrate third-party code, (c) be easy to port, and (d) do good practices by design in case we're stuck with it for 50 years. :O
I liked the debugging features of IDEs when I had to maintain a gigantic PHP codebase. The hours I stepped through code after one click :D
But after I started with JavaScript, which brought graphical debuggers inside the runtime (Browser) I didn't need this feature anymore...
Also IDE get features slower, Atom and Sublime often have more up to date plugins, which allows the use of more alternative languages like LiveScript.
This is true IMO. However you don't need to understand what the IDE is doing to use it now do you? A new user needs to learn nothing more than how to use the project creation wizard, and hit the play/stop button button.
As someone who teaches high school children how to program I assure you from experience and an IDE is much, much simpler than diving into the terminal.
This example requires the user to be able to do the following that an IDE would not:
- copy paste a file path to the terminal
- cd [pasted filepath]
- make [file name]
- ./[filename]
http://c.learncodethehardway.org/book/ex1.html
Versus throwing them into a black box where they are overwhelmed with buttons and gizmos and are encouraged to give up on the idea that they will ever know what's going on. Do you honestly think it's not worth the time to teach students how to use the terminal?
Oh, you're on Windows (like 90+% of normal computer users), well there's this thing called Mingw, or you can use Cygwin, which you use in this thing called a command-prompt, which you've probably never used before. Oh, and make sure you have your PATH environmental variables setup correctly. What's an environmental variable?
It's all turtles. Much easier to open Visual Studio, add a project, type out a main method, and hit compile & run. It's a shame QBasic isn't around by default anymore, limited as it was. Which, come to think of it, was a stripped-down, basic IDE.
The 'complexity of IDE' is overrated. Once you've memorized the hot keys, it makes a world of difference, running grep to find a piece of code you don't remember hidden under layers of inheritence. You are setting up for failure if you act like a luddite.