IDEs:
- Coerce developers to use a specific IDE on a per-project basis based on the preferences of the project maintainer. In the case of open source projects, it's annoying using a different environment for each project or even language.
- Lock a project into the IDE because the build system is tied into it (like using visual studio instead of using the command line).
- Make finding resources more difficult unless you prescribe to their same IDE religion. Tutorials become "click here, check there" instead of more versatile text configurations, like linux historically does.
- Can be used as a crutch be some developers. I knew a guy who if the "intelliscence" or code completion didn't prompt him, he wouldn't look up the actual code and documentation. Also, I remember he made a bug because he incorrectly assumed something from the method name and hadn't looked at the actual class it was coming from.
- Non-native feel. Typically, the GUI doesn't look right compared to other applications.
- Not always cross-platform. Good luck finding Visual Studio on a Mac or Linux without running a windows VM.
- "Fixes" things without telling you, like Word does. While you can disable auto-correction (which I do), it's annoying when the IDE introduces mistakes because it tries to anticipate what you meant. It's the same problem IE has had, where their javascript and dom interpreters over the years try to be dummy proof by assuming some dumb things.
- Can cause discrepancies between what you see and what you get. For example, the drag and drop in visual studio can, without warning, have the visually generated code be disconnected from code you have tweaked and there is no easy way to get the GUI to match again short of reverting. There are also cases where the GUI looks configured the same, but since you can't see under the hood, you can't see what is wrong as easily. You can diff config files, but you can't usually diff checkboxes and GUI setups.
- Are bloated. I hate feeling like my laptop is crushed under the load of an IDE. Geany, which is what i use, has been on all day and is currently only using 20.1 MB.