Programming is the writing of a computer program, a concrete set of instructions that a computer executes. This is the job of a software developer or programmer. Programming is generally not done directly in machine language, but in a programming language. The program code that is written is called source code and is converted into machine code by an assembler, compiler or interpreter. Especially in the past coding was also used for programming.
Compilers that convert the same programming language to different machine languages make it possible to write software that is not tied to a specific processor. In addition, a programming language supports a higher level of abstraction than machine language, making programs easier to understand and change.
The scope of programming work varies greatly. Many programs consist of a few lines of source code, which are discarded after a single use; but also programs with millions of lines of source code, used and adapted by thousands of programmers for decades, are not rare.
The nature of programming can also vary greatly: different types of applications require different types of knowledge. For example, a program that communicates with end users through a graphical user interface will use things like window, text block, fillable text block, pressable button, while a statistical calculation program will include support for variance and exponential distribution, for example.
That is why many programming languages have all kinds of application-specific libraries. In addition, a given programming language is often considered inherently less suitable for expressing certain types of programs because the modes of expression supported by the language do not fit the problem well. This often leads to the development of new languages.
There are therefore thousands of different programming languages, most of which are still in use today and are subject to constant change, such as natural languages.
A program can also combine different languages. Professional software developers specialize in certain languages and certain types of applications as there are so many programming languages.
- Extreme Programming
- Functional programming
- Structured programming
- Object-oriented programming
- Unified Software Development Process