I enjoyed this post for one very simple reason: it makes me realize that, no, I am not the only one who dislikes these parts of programming.
Too often when problems like those mentioned by Joe are brought up in discussion, the (seemingly) majority of programmers argue that these are just complexities we have to deal with. Perhaps they're just the vocal ones. I admit, it is a pragmatic attitude, but I constantly daydream about an environment, both technical and social, where these problems mostly disappear.
Thankfully, we're starting to approach some solutions on the technical side with virtual environments, deterministic builds, etc.. The social side I hope will fall out of having better environments for reproducible behaviour. Although I believe a total solution is technically impossible (at least practically, e.g. requiring total system verification, managed behaviour, etc.), I think we can make a lot of improvements to the environments we currently use.
I have always argued that programming is not "intellectually difficult" (for me) but is rather "emotionally difficult" for a lot of the reasons mentioned in the blog post.
Too often when problems like those mentioned by Joe are brought up in discussion, the (seemingly) majority of programmers argue that these are just complexities we have to deal with. Perhaps they're just the vocal ones. I admit, it is a pragmatic attitude, but I constantly daydream about an environment, both technical and social, where these problems mostly disappear.
Thankfully, we're starting to approach some solutions on the technical side with virtual environments, deterministic builds, etc.. The social side I hope will fall out of having better environments for reproducible behaviour. Although I believe a total solution is technically impossible (at least practically, e.g. requiring total system verification, managed behaviour, etc.), I think we can make a lot of improvements to the environments we currently use.