An integrated development environment (IDE) is a software application that provides comprehensive facilities to help computer programmers develop software. An IDE typically includes a source code editor, build automation tools, and a debugger. Many modern IDEs also incorporate version control and have features like class browsers, object inspectors, and class hierarchy diagrams to aid object-oriented development. IDEs are designed to maximize programmer productivity by integrating these tools and keeping mode switching to a minimum. Popular open source IDEs include Eclipse, NetBeans, and Code::Blocks, which support multiple languages through plugins.