Does anyone know of work on software maintenance? ...
# thinking-together
g
Does anyone know of work on software maintenance? Specifically around modifying code after upgrading libraries with breaking changes. I spend most of my time making sure no one notices that I’ve changed anything. I feel like improvements to this could have huge benefits to productivity.
k
I think this is the implicit motivation for a lot of research and tech choices. Languages trying to be predictable (Go) are focused on maintenance. Rhetoric about readability, how programs are read a lot more than modified, Literate Programming and how programs should be written for people to read. Automated testing and version control are arguably the biggest recent advances. In spite of all the research it remains a problem. I think it'll never be completely solved because better tools just cause people to take on more complex projects, the way building more roads never seems to eliminate traffic jams. And those local complexifying choices pollute our shared commons. Dijkstra said his brain is very small and can only handle small programs. Dennis Ritchie said if you write programs using all of your brain you won't be smart enough to debug them. Illich warned us of the consequences of adopting tools too quickly. Unfortunately the world doesn't listen to any of these prophets. After 10k years the prisoner's dilemma continues to reign supreme.
👍 1
j
s/Dennis Ritchie/Brian Kerighan/ 🙂
❤️ 1
a
I know there's research into (automatic) proof repair, which is very close to "modifying code after upgrading libraries with breaking changes" in many ways. Also there's research into automatic code refactoring.