In one of Uncle Bob Martin’s talks, “The Last Programming Language”, and in some of his blog posts, for instance, “The Churn”, he is suggesting that we, programmers, need to choose one or two programming languages that we can use as our one notation for writing code. (He was suggesting Clojure.)
But, at the end of the talk, he said that it might not happen today. Maybe in the future it will — our children (read future programmers) might program using only one (or two) languages for (almost) everything.
But, having read his blog posts on Clean Architecture, and having heard his talks on it on youtube, I think we can still have an equivalent of a one-language-on-everything experience during our lifetime.
I think that can happen if all programmers[1] and all IT/CS students (read future programmers) will become aware of this Clean Architecture idea (or its equivalents: ports-and-adapters, hexagonal architecture, onion architecture, the boundary-controller-entity model)
When all programmers[2] become aware of the Clean Architecture model…
I believe we all will like it, because it has with it attached the promise of control with our software projects!
Control!?
I think yes! Maybe not 100% control? I think the amount of control that a team can get from using the Clean Architecture model depends on the people involved in the project.
So, yes! Control…
And if coupled with TDD… more control!!!
Okay, back to the one language thing…
If students will be introduced to the Clean Architecture model at school, and if industry practitioners implement their projects using the Clean Architecture model, then programmers new to these projects will not be spending too much time getting familiar with the structure of a project. Some can even go directly to solving problems they were hired to solve, if they are already familiar with the frameworks or libraries being used in the project.
(Or maybe not? Maybe I’m just too optimistic about this?)
We can also easily switch from one project to another, depending on where we are needed.
That experience would be like having only one language!
What do you think?
No?
But it could be a step towards a one (or two) programming language(s) world.
(I’m assuming here that a one programming language world is a better world.)
I heard someone said before that one awareness, if we open our eyes to it, can bring about another awareness, which can bring about yet another awareness.
Maybe this awareness to the Clean Architecture idea will make our eyes opened to other awarenesses too…
[1] [2] or, at least those programmers who are involved in creating what they call line-of-business applications or what is called “representational-transactional systems” here