Programming Paradigms as Language Destiny

Why do some programming languages feel neat and orderly and others seem loaded with inconsistencies?

Technology vector created by artmonkey

What Is a Programming Paradigm?

A programming paradigm can be thought of as a philosophy of structuring and executing code. Unlike styles and conventions, paradigms cannot be leveraged unless they are built into the design of the language. You probably already know many programming paradigms:

  • Functional programming
  • Procedural programming
  • Agent-orientated programming
  • Metaprogramming
The conversation that got me thinking about how paradigms influence language performance and stability.

Paradigm Groupings

Dig into paradigm support of the most common programming languages today, and you’ll start to notice some obvious groupings. Some paradigms are more likely to coincide than others. For example, functional languages tend to also have support for the logical paradigm and/or metaprogramming. This makes sense because in all three the fundamental abstractions are the same. They prefer immutable data with pure functions.

  • Sequential vs Concurrent
  • Named State vs Unnamed State

Designing a Language with Paradigms

The languages that seem to do best with lots of paradigms are languages that either have strong opinions in other ways (eg: a well designed type system) or are really only used for specific tasks (like Julia and Wolfram Mathematica). To support very different paradigms some languages have specific data structures that are immutable alongside mutable alternatives. Some provide trap doors that allow restrictions necessary for one paradigm to be ignored or turned off.

Author of Kill It with Fire Manage Aging Computer Systems (and Future Proof Modern Ones)

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store