Alvin Toffler once wrote, “The future always arrives too soon and in the wrong order.” After thirty-five years in tech, I would add, “And from unexpected directions.” Real disruption inevitably from things we aren’t paying close attention to, because if we’re watching something, its evolution doesn’t come as a surprise.
The way in which personal computers supplanted mainframes, and then phones and tablets supplanted PCs, is one example. I now believe that structured programming tools like Scratch and Stride are poised to do the same to the ASCII-based languages we’re all familiar with. Those older languages won’t disappear: they’ll just become a minority interest as newcomers preferentially adopt something better.
Regular readers may be groaning at this point, because I’ve been predicting a change of this kind for a while. Back in 2004, I thought we would see programmers adopt the same model/view separation for their tools that they routinely use in the applications they build. What I under-estimated then was how tightly programmers would cling to the familiar, and how powerful the “no real programmer” meme would be. What makes me hopeful now is growing comfort with non-keyboard interactions on small-profile devices coupled with a need for something—anything—that will enable non-specialists deal with the Internet of Things That Behave Uncontrollably.
Back in 2004, I thought that the MathWorks, Microsoft, or some other company that owned an entire toolchain would start using structured storage for programs. Today, tools like RStudio and Jupyter are edging toward that, and MPS and Xtext are generalizing the idea, but the real action is (literally) in the hands of children.