Learn something new every day
More Info... by email
Given that the definition of computer programming is so broad and the use of programs so pervasive, there actually are many types of computer programming, often defined in starkly different ways. The most basic kinds of computer programming can be broken down by the programming language — such as C, Lisp or Java® — used by the programmer. In other contexts, there are might only be two types of computer programming — system and application. Some distinctions are made between network programming, web-based programming and desktop programming. The different kinds of programming sometimes can be separated by the target platform, such as embedded systems programming, real-time system (RTS) programming or database programming.
The different types of computer programming often are defined by the language used to write software. There are many languages available, but they broadly fall into either structured languages such as C or object-oriented languages such as Java®, with both being commonly used by professionals for different tasks. Languages also can be imperative, like the previously mentioned ones, or functional, like Lisp, in which programs consist of a series of functions instead of commands. Some computer programming is done purely with scripting languages, which are interpreted human readable documents that perform operations within another framework.
There traditionally has been a distinction between two broad kinds of computer programming. The first is application programming and involves writing programs that can be directly used for some function. Alternately, there is system programming, which seeks to design programs for the management of hardware or frameworks in which applications can run, such as operating systems.
As the technology for networking and remote communications became more widely used, certain kinds of programming started to distinguish themselves from the other fields of computer programming. Network programming is considered different because of the required knowledge of network protocols and hardware interfaces. Programming web-based applications or servers requires specific knowledge of security restrictions, Internet protocols and unique programming design patterns.
There also are types of computer programming that are specific to a certain field or target hardware. Database programming involves using special query languages, scripts and other elements to interact with specific database infrastructures. Game programming involves knowledge of graphics hardware, graphics algorithms and sometimes special optimization techniques. Embedded systems, such as hand-held devices or consoles, can involve unique hardware specifications and knowledge of vendor libraries. More advanced real-time system programming can involve writing failsafe control software for nuclear power plants or military hardware.
@Soulfox -- We have had a lot of computer languages over the years, but things seem to have settled down a bit. When it comes to computers themselves, we have a pretty standard set of languages which are typically used by programmers.
There is some fluidity when it comes to languages for Web-based stuff, but languages for computers themselves has remained somewhat stable.
Keeping up with the types of computer programming is a difficult task, indeed. Here's the thing. There have been so many languages that have come and gone over the years that trying to track them all could give one a headache.
I well remember people talking about BASIC, Fortran, Cobol, Pascal, assembler and even something called Logo. Those have largely been replaced by other things and only time will tell if more replacements are in store for the future.
One of our editors will review your suggestion and make changes if warranted. Note that depending on the number of suggestions we receive, this can take anywhere from a few hours to a few days. Thank you for helping to improve wiseGEEK!