Biggest problem with IDEs is they are a big in-your-face hurricane of features that is often too much.
As a newbie you want to create a single-line Hello World program but the goddamn IDE wants you to create a workspace, and then within that workspace create a project, and within that project create a bunch of infests and manifests and resources and XML files, and pretty soon you're lost.
> Biggest problem with IDEs is they are a big in-your-face hurricane of features that is often too much.
This is another aspect. They suck up attention, which is a scarce resource. It is just like you start a web browser to look up some documentation, and it shows a dozen of interesting sites you might want to read because the browser developers got some money from these sites, or whatever.
Good software typically has a sparse feeling (depending on which are its intended users), in the sense that it does not distract.
But this is just a symptom of a bigger issue that they are not really friendly to the developer.
What is unintuitive, is the concept of modes. One, because it is a unique concept and Two because many people who accidentally end up in vim have no use for it.
Once you grasp this concept, exiting vim is one of the most intuitive actions:
* [ESC] <- This is the "modal" part, the hard part, what you probably call unintuitive.
* : <- The other part of "modal", difference between commands and navigation. Also a unique concept, that is not hard to grasp, but probably hard to know that one has to grasp it at all.
* quit, exit, close
* Some error may show up, telling you what to do instead, E.g.
* :quit!
That is all: `[esc]:quit` a series of keystrokes that make little sense when you are not familiar with some basic concepts of vim. But entirely guessable, without reading a single line of help, if you do grasp the very basic concepts.
I'm a native vim-er now so a lot of it is second nature, but there's absolutely nothing about "modal" that suggests one mode is "commands + navigation" a priori. For instance, why isn't navigation a command? It's not necessarily bad that it's unintuitive -- lots of things require you to know something before you interact with it -- but to suggest that anyone who doesn't immediately guess the syntax has somehow failed only introduces needless elitism.
That's the matter of your intuition itself. Being familiar with editor modes concept and the idea of editor commands (e.g. "actions" in IntelliJ Idea or "command palette" in VSCode) - you can figure out how to quit quite quickly.
One thing that command-line tools have over IDEs for beginners is that they don't litter your hard drive with surprising artifacts (which, in some cases, create unexpected behavior months or even years later). If you're experimenting with code in vi, you can delete everything when you're done and be absolutely certain that no trace exists.
As a newbie you want to create a single-line Hello World program but the goddamn IDE wants you to create a workspace, and then within that workspace create a project, and within that project create a bunch of infests and manifests and resources and XML files, and pretty soon you're lost.