For seven decades we programmers rode a technology that was skyrocketing exponentially. We got very accustomed to the rapid change. Now that change has slowed to a near stop; yet we continue to churn our industry as though Moore’s law still ruled.
But Moore’s law has lost its impetus. Processors aren’t getting faster and smaller and cheaper at an exponential rate anymore. And software capability, which was _always_ driven by hardware, has also ceased that wild skyward ride.
We have crested the slope, and we now find ourselves on a vast plateau. As we take stock of our surroundings we realize that software has changed, but little, in the last seventy-five years.
We programmers still wield sequence, selection, and iteration just as we did at the beginning. What small advances we made in the early days: Structured Programming, Objects, Functional Programming, are ancient now.
They were the lessons learned in the ‘50s and ‘60s, when software was less than two decades old. Those lessons told us more about what NOT to do, than what TO do. They did not add to our capabilities; they constrained us with disciplines.
And now, on the plateau, as customers expect ever more of us, a new discipline will be required: The discipline to stop the churn, to stop building the Tower of Babel, to stop searching for the Golden Fleece.
We have explored the domain of programming languages to it’s limits. No new language will be better than what we have. Indeed, the purpose of new languages has changed. New languages are no longer about helping programmers.
Nowadays, new languages are used as recruiting tools, and as the cords that bind programmers to a commercial entity. They are motivated more by the urges of politics and commercialism, than by technology. They have become cages more than tools.
Such protectionism may provide short term advantages for individual companies and enterprises; but it is not good for programmers and programming in general. We programmers need something else. We need to take control of our environment and our tools.
We, not they, need to decide our future. We need to choose the language(s) we use. We need to choose the framework(s) and platform(s) for our projects. We, not they, are the experts who know best how to proceed.
I look forward to a day when the number of languages we use is small — perhaps as small as one. I look forward to a day when the churn of languages, frameworks, and platforms has ended.
It seems to me, when that day comes, life on the plateau will be much easier and much more productive.
You can follow @unclebobmartin.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: