Computer software is a program that tells a computer what to do. These instructions might be internal commands, such as updating the system clock, or a response to external input received from the keyboard or mouse. Though there are many different types of software made both with open source and proprietary standards, the programming mostly comes down to a few basic rules.
Hardware vs. Software
The fundamental difference between hardware and software is that the first is tangible while the second is not. Hardware is the machine itself and does all of the physical work, while software tells the various hardware components what to do and how to interact with each other. This makes it possible for computers to adapt to new tasks or to install new hardware. While hardware includes things like monitors, Central Processing Units (CPUs), keyboards, and mice; software includes things like word processing programs, operating systems, and games.
There are two main types of computer software: system and application. The first type is used just to run the hardware, while the second is used to do other things. The main types of system software are operating systems, like Windows™ OS X, or Linux; and drivers, which are programs that allow a computer to interact with other devices, like printers and video cards. There are many different types of application software, including games, media players, word processors, anti-virus programs, and applications for making new programs.
How It Works
Hardware only understands the two basic concepts, on and off, which are represented as 1s and 0s in binary language. Software acts as the translator between human languages and binary, which makes it possible for the hardware to understand the instructions being fed into it. Programmers write commands called source code in programming languages that are similar to what someone might use in everyday speech. Another program called a compiler is then used to transform the source code commands into binary. The result is an executable computer program.
Open Source vs. Proprietary
Programmers create either open source or proprietary computer software. The first type can be edited and adapted by users, while the second is protected and not intended to be edited by people outside the company that sells it. While open source programs are usually free, proprietary ones are licensed to distributors and must be paid for.
Both types generally have a comparable quality of programming, but fixes for bugs generally come faster for open source products than for proprietary ones. Also, some people prefer to use open source applications because they can feel a sense of ownership in the end project or feel that computer software companies create monopolies and want alternatives. Others prefer closed source programs because they are sometimes more stable or be less vulnerable to hackers, often come in suites, and come with customer service from the company.