Computer programming has many types, including those defined by programming language, system vs application, network vs web-based vs desktop, and target platform. Programming languages can be structured or object-oriented, imperative or functional. Specific types include database, game, and embedded systems programming. Real-time system programming can involve failsafe control software for high-risk environments.
Because the definition of computer programming is so broad and the use of programs so pervasive, there are actually many types of computer programming, often defined in completely different ways. The most basic types of computer programming can be divided according to the programming language, such as C, Lisp or Java®, used by the programmer. In other contexts, there may be only two types of computer programming: system and application. Some distinctions are made between network programming, web-based programming and desktop programming. The different types of programming can sometimes be separated by the target platform, such as embedded systems programming, real-time systems programming (RTS), or database programming.
The different types of computer programming are often defined by the language used to write the software. There are many languages available, but they generally fall into structured languages like C or object-oriented languages like Java®, both of which are commonly used by professionals for different tasks. Languages can also be imperative, like those mentioned above, or functional, like Lisp, where programs are made up of a set of functions rather than commands. Some computer programs run exclusively with scripting languages, which are human-readable documents that are interpreted by humans that do things within another framework.
Traditionally there has been a distinction between two broad types of computer programming. The first is application programming and involves writing programs that can be used directly for some function. Alternatively, there is systems programming, which seeks to design programs to manage hardware or frameworks in which applications, such as operating systems, can run.
As the technology for networking and remote communications has become more widely used, some types of programming have begun to distinguish themselves from other fields of computer programming. Network programming is considered different due to 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 are also specific types of computer programming for a certain target field or 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 handheld devices or consoles, may involve unique hardware specifications and knowledge of vendor libraries. More advanced real-time system programming may involve writing failsafe control software for nuclear power plants or military hardware.
Protect your devices with Threat Protection by NordVPN