A listener sent me a link to this rant, The State of the Art is Terrible, by Zack Morris. If you can wade through the technical humbuggery, I think there is a useful point. Several decades after the advent of high level programming languages and well into the age of ubiquitous computing, it genuinely is time for computing technology to be more focused on outcomes.
I’m on the threshold now of rejecting this false idol, but for at least a little longer I have to cling to it to carry me through. I have a dream of starting some kind of open source movement for evolvable hardware and languages. The core philosophy would be that if your grandparents can’t use it out of the box to do something real (like do their taxes or call 911 when they fall down) then it fails. You should literally be able to tell it what you want it to do and it would do its darnedest to do a good job for you. Computers today are the opposite of that. They own you and bend you to their will. And I don’t think people fully realize how trapped we are within this aging infrastructure.
The post is rife with examples of how the status quo is an abysmal failure to all but those of a very hackish bent. Morris touches on why this is so, the industrialization of software and the subsequent urge to profit. If you can wade through the very down tone, I think there is a kernel of optimism–a call for a sea change in how computers work and work for us.
Morris isn’t alone in this view, keeping company with the likes of Jaron Lanier. This is not likely to be the last rant in this vein. I think he is a bit more pragmatic, though, highlighting PHP as an example of a step in the right direction. His point isn’t that PHP has a natural language based syntax or that it has syntax or semantics that mirror concepts and idioms with which non-programmers are familiar. Rather he suggests it for its more productive failure modes, that it makes a best effort on the easy stuff and doesn’t obscure breakages requiring more investigation.
Whether you agree with PHP specifically or not, it is worth considering it as an example of the model he is proposing–languages and tools that are more focused on outcomes than abstract design principles or idealized syntax. The emphasis of getting out of the way of doing useful things ultimately sets apart this rant from a crowd of voices raising many of the same critiques of the state of the art.