Computer programmers have evolved from the early days of the bit processing first generation languages into sophisticated logical designers of complex software applications. A programming paradigm is the logical approach used in software engineering that describes how a programming language is implemented. Programming paradigms are unique to each language within the computer programming domain, and many programming languages utilize multiple paradigms. The term paradigm is best described as a "pattern or model." Therefore, a programming paradigm can be defined as a pattern or model used within a software programming language to create software applications.
Programming languages are extremely logical and follow standard rules of mathematics. Each language has a unique method for applying these rules, especially around the areas of functions, variables, methods, and objects. There are many programming paradigms; examples include object oriented, procedural, and structured programming. Each paradigm has unique requirements on the usage and abstractions of processes within the programming language.
It is helpful to understand the history of the programming language and software in general to better grasp the concept of the programming paradigm. In the early days of software development, software engineering was completed by creating binary code or machine code, represented by 1s and 0s. These binary manipulations caused programs to react in a specified manner. This early computer programming is commonly referred to as the "low-level" programming paradigm.
This was a tedious and error prone method for creating programs. Programming languages quickly evolved into the "procedural" paradigm or third generation languages including COBOL, Fortran, and BASIC. These procedural programming languages define programs in a step-by-step approach.
The next evolution of programming languages was to create a more logical approach to software development, the "object oriented" programming paradigm. This approach is used by the programming languages of Java™, Smalltalk, and Eiffel. This paradigm attempts to abstract modules of a program into reusable objects.
In addition to these programming paradigms, there is also the "declarative" paradigm and the "functional" paradigm. While some programming languages strictly enforce the use of a single paradigm, many support multiple paradigms. Some examples of these types include C++, C#, and Visual Basic®.
By allowing developers flexibility within programming languages, a programming paradigm can be utilized that best meets the business problem to be solved. As the art of computer programming has evolved, so too has the creation of the programming paradigm. By creating a framework of a pattern or model for system development, programmers can create computer programs to be the most efficiency within the selected paradigm.