DEV Community

Cover image for Language and complexity

Language and complexity

Graham Trott on May 06, 2019

This piece was prompted by several recent questions posted on Quora, asking about the future of JavaScript. I should start with a disclaimer; I am...
Collapse
 
anwar_nairi profile image
Anwar

Always a great time reading your article. This goes without saying I obviously agree on your point. I guess this is the reason why we see more and more Framework fatigue. Complexity is forcing us to sometimes think in complicated manner to solve a problem that were clearly specified.

I am witnessing a behavior in my company I did not paid attention before reading your article : executive with a very light knowledge on programming will better understand SQL than PHP. For example, when I try to explain how my program work, which most of the time depends on a concept we modelized in a table, if I start from the PHP code I have more chance to loose the attention of my collègues. But when I show them pure SQL, they quickly interacts with me and I notice a better attention rate. I guess since SQL is one of the language that come the closest to our natural language, everything seems clearer.

Great article, very important to light some thoughts, I think overall the programming ecosystem needs a shift in the paradigm, because tomorrow with more and more automatisation we might not be able to efficiently maintain such complex code bases.

Collapse
 
gtanyware profile image
Graham Trott

Yes, it seems intuitively true that the closer we get to English the better we are able to communicate with each other. Computer languages like C, Java and Python (with or without frameworks) are great for expressing highly algorithmic structures but they are too complex to permit anyone but a programmer to fully understand what is going on, and that's where mistakes get made. Users of SQL understand well the benefits of being to able not just to talk but also to show, as you describe.

My belief is we should pay more attention to 'containerization', where functionality is kept in components with well designed interfaces, and with a top-level controller that operates in something as close as possible to English.

My favorite analogy is of a roomful of people, all experts in different subjects. If I want to know something about waterproof fabrics I ask the materials expert; if it's a financial question I ask an accountant and if I have a sore toe I consult a chiropodist. Everything happens as 'messages' sent from one 'component' to another. Too many systems are built as if all the experts had their brains physically wired together, so when one moves the whole lot have to move. Sometimes the strain is too much, connections break and the system fails.