Image for post
Image for post
Components of the 3P Principle

As programmers, we are continuously looking for languages that are performant, productive, and general purpose. Is there any programming language that currently satisfies these properties? Can we ever create one?

In this article, I present the 3P Principle, a fundamental trade-off that affects the design of programming languages and the success of software projects.

Definitions

The 3P Principle dictates that a programming language cannot satisfy the following desirable properties at the same time:

  • (General) Purpose: a programming language can be applied to a wide range of tasks and problems (e.g., web programming, computer security, theorem proving, data analysis …).
  • Productivity: a programming language that provides several mechanisms to deliver effective programs under time constraints (e.g., dynamic typing, introspection, meta-programming, REPL development …). …

About

Médéric Hurier (fmind)

Doctor, Hacker, Learner, Teacher, Researcher, Entrepreneur, Father, and Dog Owner. I’m a Data Scientist / ML Engineer working in the area of Luxembourg.

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