adam bien's blog

Note On Polyglot Programming 📎

Polyglot programming is the idea to use in a single project (application or script) multiple programming languages at the same time. "Use the right language for the job" is often referred as the main driver behind this movement. Productivity increase is the overarching goal, justified by disjoined qualities of special purpose programming languages.

In "best case" you would use one programming language for the data access, another one for data transformation and a completely different language for efficient message passing between the processes. On top of this mix you will have to use SQL, CQL, JPA-QL (...), CSS (Sass / Less), JavaScript / JSON, HTML and probably some native languages for the UI technology anyway.

Now lets assume the project survives the development, is successful and is going to be maintained for several years.

  1. How many developers are able to master several languages at the same time to maintain the system efficiently?
  2. How much time are you going to spend in meetings to discuss what the best language for the job actually is?
  3. How likely is it, that all the chosen languages remain popular and well maintained through the lifecycle of the application?
  4. How many IDEs are you going to need to maintain the whole system?
  5. How easy it is to create a Continuous Integration pipeline for all the languages, but one system at the same time
  6. Did the complexity really decreased and the maintainability increased?
  7. How interoperable are theses languages?
  8. What about debugging, profiling, bug fixing? Is a language mix in the same callstack easier to tackle?

What's funny: "Polyglot Programming" seems to be a nice topic for a conference session, at the same time most "real world" projects try to be the opposite. nodejs is often chosen by JavaScript frontend developers as backend framework, because it is JavaScript. Isomorphic is even hotter and completely contradicts the idea of "polyglot" programming.

GWT on the other hand, is still popular among Java backend developers, because they can build the frontend ...in Java.

Usually not the technology, rather than annoying client's requirements are the productivity break :-)

See you at Java EE Workshops at Munich Airport, Terminal 2 or Virtual Dedicated Workshops / consulting