A modern IDE wouldn't be taken seriously if it didn't have a good editor with syntax highlighting, comprehensive warnings, and a source-level debugger. And there are many more tools/IDE features that programmers find essential:
- Refactoring transformations
- Unit testing support
- Source code control integration
Yet, there are still many good tools that don't have the exposure and usage that they should. For example, the following tools are usually expensive or hard to find for a given language:
- Automated GUI testing
- Program slicing (e.g. CodeSurfer -- useful for finding what statements can affect another statement)
- Test coverage (depending on your language, this can be very easy to find, or quite difficult)
- Points-to analysis ("Do I really need to make this list concurrent, or will it ever be accessible by one thread anyway?")
Partly it's an issue of education and awareness, and partly it's because IDE makers are often too busy supporting the next version of the language to dedicate resources to developing these secondary tools.
What features are missing in today's IDEs? What secondary tools should really be primary? What makes them so helpful?
That is, what features do you think you'd use every month, or every day, if the tool was available? Please consider tools that both exist or should exist. For a tool that should exist, make sure the idea is feasible.