Computer hardware, being part of a machine, can only understand two basic concepts: on and off. The on and off concept is called binary.
Computer software was developed in order to make binary into a useful way to tell the computer hardware what to do. Computer software translates concepts and directions that people can understand into something that can actually be done on the computer hardware.
Computer software is most commonly created by computer programmers using a programming language. The programmer writes commands in the programming language that are similar to what someone might use in everyday speech. These commands are calledsource code. Another computer program called a compiler is then used on the source code, transforming the commands into a language that the computer can understand. The result is an executable computer program, which is another name for software.
Computer software falls into two primary categories: system software and application software. System software represents programs that allow the hardware to run properly. Application software represents programs that allow users to do something besides simply run the hardware. Some experts also include a third category, programming software, though others put those programs into one of the other previously mentioned categories.