If your experience is limited to one or just a few programming languages or paradigms (e.g., object-oriented programming in Java), then you will find a much broader viewpoint here. We find that it is certainly not true that there is one “best” paradigm and Peter van Roy, the author of ‘Programming Paradigms for Dummies: What Every Programmer Should Know’ explains that in his article.
Since most programs have to solve more than one problem, it follows that they are best written in different paradigms.
- A good language for large programs must support several paradigms. One approach that works surprisingly well is the dual-paradigm language: a language that supports one paradigm for programming in the small and another for programming in the large. Another approach is the idea of designing a definitive language.
- There are four most important concepts in programming: records, lexically scoped closures, independence (concurrency), and named state.
- We show the four kinds of data abstractions: objects and abstract data types are the two most popular, but there exist two others, declarative objects, and stateful abstract data types.
- We present three important paradigms of deterministic concurrency that deserve to be better known. The price for using deterministic concurrency is that programs cannot express nondeterminism, i.e., where the execution is not completely determined by the specification.
- Constraint programming has achieved a high degree of maturity since its origins in the 1970s. It uses sophisticated algorithms to find solutions that satisfy global conditions. This means that it genuinely delivers on its ambitious claims.
To understand the “soul” of each paradigm and to gain experience programming with different paradigms, we recommend the use of a multiparadigm language. A multiparadigm language permits programming in each paradigm without interference from other paradigms. But, of course, you to decide!
Enjoy and explore the whole 39-page article here.