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


NEW online workshop: WebStandards Igniter (online)

Airport MUC workshops: Java EE 7: Bootstrap, Effective, Architectures, Web, React and Angular, Testing and Microservices

Podcast: airhacks.fm and newsletter: airhacks.news

A book about rethinking Java EE Patterns

Comments:

I think but still polyglot projects outnumber the single language one. be it nodejs or GWT. I never was fan of GWT and nodejs is till to be tried but again I am little bit sceptical there too, why reinvent wheel always.

Posted by abhishek on February 18, 2015 at 12:29 PM CET #

In your experience, is GWT good? I've always felt curiosity about developing some medium/large web app using it. But I have never done it because I've read about performance problems. Otherwise, I wouls be Java isomorphic from years ago. :)

Posted by Arturo on February 19, 2015 at 03:53 AM CET #

Post a Comment:
  • HTML Syntax: NOT allowed
realworldpatterns.com
Online Workshops
...the last 150 posts
...the last 10 comments
License