Sunday, December 19, 2021

Babel Tower Programming

In the ancient story of the Tower of Babel, all of Humanity is unified in a common language.  They begin to construct a great tower which, in some variations of the story from other civilizations, might save them from possible extinction from another Divine Flood sent by an angry God.  Construction of the tower is abandoned when God disrupts the ability of Humanity to communicate by dividing their shared language into many.

Babel Tower Programming is what I call a form of Polyglot Programming in which the use of multiple computer programming languages impedes rather than promotes progress.  An example might be using one programming language for front-end development and a separate for the back-end when the same language could be used for both.  One sign that you are experiencing the impedance of Babel Tower Programming is when software developers are choosing their feature development tasks based primarily on which programming language will be used.

The solution, which I call the Incantation of Nudimmud, is to adopt a policy which requires that any new software features be developed in a common programming language.  Legacy code developed in the abandoned programming languages can be gradually phased out using techniques such as the Strangler Fig Pattern.  As Babel Tower Programming is a form of Technical Debt, the decision to move to a single language usually requires some cost analysis and both bottom-up and top-down support.