Software developers or programmers use these tools for creating, modifying, debugging or maintaining software products. Depending on the purpose they serve, software development tools can be categorized into different segments. For instance, tools usually come with a compiler and a linker that help turn human readable code into machine readable instructions. Other types of development tools include debuggers, profilers, source control tools, testing tools, integration tools, performance analysts, and GUI builders. Some important things to consider when choosing programming tools include company standards, training requirements for using the tool, integration features, and whether the tools are readily applicable to your environment.