Programming Paradigms
by Stephanie Blanford
1. Object-oriented
1.1. Object-oriented (OO) paradigms formulate programs as a serious of objects and methods that interact to perform a specific task.
1.2. The object-oriented paradigm can be applied to a wide range of programming problems. If the problem can be envisioned as a set of objects that pass messages then the problem is suitable for the OO paradigm.
1.3. The advantages are programmers can visualize the solutions to problems more easily, and can increase a programmer's efficiency because encapsulation allows objects to be adapted and reused in a variety of different programs.
1.4. The disadvantages of using object-oriented programs is that they tend to require more memory, and runtime efficiency.
2. Functional
2.1. This paradigm emphasizes the evaluation of expressions called functions.
2.2. An advantage is that it is possible to employ a functional style of programming in languages that are not traditionally considered functional languages.
2.3. A disadvantage is that functional programming languages have been perceived as less efficient in their use of CPU and memory rather than imperative languages such as C and Pascal.
2.4. Functional paradigms are designed for programs that handle large matrices and multidimensional databases, which optimize the speed of the programs.
3. Procedural
3.1. The procedural paradigm emphasizes linear steps that provide the computer with instructions on how to solve a problem or carry out a task.
3.2. The type of problems best suited for the procedural approach are problems that can be solved by a step-by-step algorithm.
3.3. The advantages of procedural paradigms is that they produce programs that run quickly, and use the system resources efficiently. It is also very flexible and and powerful, which helps programmers apply it to different types of problems.
3.4. The disadvantages is that it does not fit with unstructured problems or very complex algorithms. Also, it has been known to view problems as a series of steps when a visualization would be a better approach.
4. Declarative
4.1. Declarative paradigm focuses on the use of facts and rules to describe a problem.
4.2. Declarative programming languages are best suited for problems that pertain to words and concepts rather than numbers.
4.3. The advantage is that it offers a highly effective programming environment for problems that involve words, concepts, and complex logic.
4.4. The disadvantage is that it provides minimal input and output capabilities. Also, the declarative language usually has a poor performance on today's personal computer architecture.
5. Event-driven
5.1. This paradigm focuses on selecting user interface elements and defining event-handling routines that are triggered by various mouse or keyboard activities. The programmer is never required to deal with the program sequence because it automatically combines the user interface elements into a file that becomes the final computer program.
5.2. The advantage of the event-driven paradigm is that it can significantly reduce development time and simplify the entire programming process.