Once upon a time, there was a group of sixteen brilliant programmers who came together, united by a common goal: to solve an immensely difficult problem. They unanimously agreed on the problem’s significance and they all were eager to contribute their skills to the solution.
One of them confidently declared, “It’s obvious that the best programming language for this task is Java.” Three others nodded in agreement.
But then, another programmer countered, “You’re mistaken. Clearly, C is the best language for this job,” and three more programmers sided with this opinion.
A third one argued, “The best language to solve this problem evidently is JavaScript”, and another three programmers concurred.
“No, Clojure is the superior choice”, a fourth programmer asserted, three other supporters backing this claim.
And so the sixteen programmers divided into four groups of four, each convinced of their language’s supremacy. They tried persuading the other groups to join them, but their efforts were in vain. It soon became clear that arguing was futile, and each group set off on their own to solve the problem by themselves.
In the JavaScript group, the debate continued. “React is undoubtedly the best framework for our solution,” one programmer insisted.
Another shot back, “No, Vue is the way to go.”
A third chimed in, “Angular is the clear choice.”
The fourth suggested, “Let’s just stick with Node.js.”
Unable to agree, they too split up, each deciding to work independently instead.
The same scenario played out in the other groups, as they each splintered further over their preferred frameworks. As nobody wanted to depart from their favorite choice, they all chose to work solo, each attempting to solve the problem on their own.
Months passed. The programmers toiled in isolation, each striving to conquer the problem. Eventually, they all found themselves at a grand conference, a gathering dedicated to the very problem they once sought to solve together.
As they recognized each other, they exchanged stories of their progress. Sadly, none had made significant headway; the problem was simply too vast for any one person to tackle alone. Moreover, they found it challenging to collaborate with new people who either didn’t know their chosen languages and frameworks or preferred different ones.
At the conference, the room was filled with even more programmers, all eager to tackle the same daunting problem. There was a renewed sense of unity. They agreed to work collaboratively, combining their diverse skills and knowledge, to finally solve the difficult problem once and for all.
***
Once upon a time, there was a group of 64 brilliant programmers who came together, united by a common goal…
***
To this day, the difficult problem has yet to be solved. Though that challenge still remains, the programmers made substantial progress. In their quest, many new programming languages and frameworks and libraries and architectures were born, each designed to tackle ever more complex challenges.
And this is where technologies come from.
***
*) That’s undecidable.
Mirror of the Self is a series of essays investigating the connection between creators and their creations, trying to understand the process of crafting beautiful objects, products, and art.
Using recent works of cognitive scientist John Vervaeke and design theorist Christopher Alexander, we embark on a journey to find out what enables us to create meaningful things that inspire awe and wonder in the people that know, use, and love them.
Series: Mirror of the Self • On simplicity… • Voices on software design
Presentations: Finding Meaning in The Nature of Order