Reducing setup time can increase developer productivity, especially in cases where learning to use the IDE is faster than manually integrating and learning all of the individual tools. One aim of the IDE is to reduce the configuration necessary to piece together multiple development utilities, instead, it provides the same set of capabilities as one cohesive unit. This contrasts with software development using unrelated tools, such as vi, GDB, GCC, or make. This program typically provides many features for authoring, modifying, compiling, deploying and debugging software. IDEs present a single program in which all development is done. Integrated development environments are designed to maximize programmer productivity by providing tight-knit components with similar user interfaces. Vim with integrated auto-completion and linting through an external plugin