Overview

Programming is the act of creating new software for use on a computer system. This is often categorized into two broad types - system software and application software. Programming is the art of creating the instructions that tell a computer what to do. Without these instructions, the source code of an application, the computer would be a useless chunk of metal and plastic. What confuses some people is that computers do quite a bit even if they don't have access to a hard disk in the system or other storage device. This is because there is already source code burned into chips inside the computer, that run programs of their own. The BIOS (Basic Input Output System) is a program that is run from these chips when a computer is first powered on, before the computer ever touches any of its disk drives.

There are literally hundreds of different programming languages. This is because there are a countless number of tasks to be solved and each language has its strengths and weaknesses. Some programming languages are much better for one set of tasks than another. PHP (Hypertext Preprocessor) is an open source scripting language that is excellent for running while embedded in HTML web pages. It is used by millions of web servers world-wide. Prolog is a language particularly well suited for programming tasks that involve the heavy use of logic. For extremely fast execution time and the ability to access very low-level devices on a computing system, the ubiquitous C programming language is used. There are many more major languages such as LISP, Java, C++, Basic, and others. The future will most definitely bring many more.

Process

Programming is done using a variety of tools, depending on the exact system being used and what it must interface with.

Often there are several stages in programming - from laying down the concept of the program, through analysis of the program must do, its design, then the actual programming stage begins. Here, programmers create lists of instructions for the computer to carry out - these are programs.


Tools

Various tools can be used in the creation of software, regardless of what the end result of the program is meant to be.

Typically there is an editor of some description in which to create the code, an interpreter to run the code line by line (to avoid the worst of problems and even crashes) and a compiler to build the final revision of code into an executable file.

Not all languages provide these - for example, many modern languages tend to have just a compiler, as opposed to an interpreter. Some languages, particularly highly widespread, portable languages. For example, there is no set editor for C (because it is widespread and portable)