What is the future of programming?

April 17, 2018 - Reading time: 2 minutes

I was watching a talk by Bob Martin about "The Future of Programming". It's an amusing tale, but it says far more about the past than the future. I was expecting him to say at the end that the future is going to resemble the past and that software will mostly be written by highly discipined, minimally supervised middle aged professionals of no particular gender who have all signed up to a code of ethics. But he didn't say that and instead he ends up predicting what happens a couple of years later with Zuckerberg testifying before the US congress and the impending regulation of "big tech".

So what is the future of programming? I don't think it will be fully automated, but it will probably be partially automated. There's still a lot of hype about Deep Learning right now, but none of the fashionistas are paying any attention to genetic programming. I think that user interface design will become more of a well defined thing and that there will be genetic programming systems which can largely automate the creation of user interfaces. If you can define in vague terms the kind of thing you want then a system can automatically produce candidate screen arrangements from which you then choose from and itterate until you are satisfied with the result.

But much of programming - especially the behind the scenes stuff which is more detailed and requires more knowledge of hardware specifics - I expect to continue to require human programmers.

The code of ethics which Bob Martin mentions isn't a new idea, but it's interesting to follow through with what the implications are. Codes of ethics don't come out of nowhere and they usually aren't mass adopted because a clever CEO somewhere wrote them down on a blog. Those types of things imply professional organizations, such as guilds or unions. Organisations bigger than any particular company and capable of applying pressure to rogue bosses to keep them in line. We don't have anything like that yet for software professionals, but there are signs that it might be on the way. Not long ago there was the first strike by software engineers attempting to join a union at a startup company in the US, and although it seems that the outcome in that case was not a good one it does set a precedent for future organizing of that type. If there were to be a global union of software engineers capable or organised collective actions then I expect the gender problem and maybe some other problems not mentioned in the talk would quickly go away. Perhaps that's too optimistic and the gender problem is actually more complex than that, but with a significant weight of organized labour behind it I suspect that progress on these problems could be made far more rapidly than otherwise.