Polyglot Programming

Polyglot Programming1 explores the benefits, as well as drawbacks, of combining multiple programming languages and multiple modularity paradigms in application development. The “paradigms” include Functional Programming, Object-Oriented Programming, and Aspect-Oriented Programming. I call this combination polyglot and poly-paradigm programming (PPP).

PPP is not a new idea. One of the most successful applications of all time is Emacs, which is still widely used even though it is decades old. Emacs succeeded because it combines a kernel written in C, which gives Emacs speed and access to operating system services, combined with a scripting engine that uses a Lisp dialect called Emacs Lisp (or ELisp, for short). Most of the functionality of Emacs is implemented in ELisp. It is this scripting capability that has made Emacs so easy to adapt, even by end users, to meet changing needs over the past 30 years.

A more recent example is the Python-based ecosystem for data science, ML, and AI. While users write Python code, most of the performance-sensitive internal code is implemented in C, C++, or Rust.

You can read more about my ideas on polyglot programming in this old presentation Adobe PDF.

1 Neal Ford may have been the first person to use this term.