I have very strong opinions about programming, but one rule I try to follow is do not mock other programmers. Programming is too big and I’m too small to understand everything. Disagreeing is fine, laying out why people are wrong is fine, making fun of them is not fine.

Hillel Wayne

I have moderately strong opinions about programming and try to stick to this rule. I never really have anything public to say about other peoples code but when I come to a new codebase with which I’m unfamiliar it seems like good form to give the decisions made the benefit of the doubt. A kind of version of Chesterton’s fence

In the matter of reforming things, as distinct from deforming them, there is one plain and simple principle; a principle which will probably be called a paradox. There exists in such a case a certain institution or law; let us say, for the sake of simplicity, a fence or gate erected across a road. The more modern type of reformer goes gaily up to it and says, “I don’t see the use of this; let us clear it away.” To which the more intelligent type of reformer will do well to answer: “If you don’t see the use of it, I certainly won’t let you clear it away. Go away and think. Then, when you can come back and tell me that you do see the use of it, I may allow you to destroy it.

GK Chesterton

Plenty of times over my career I’ve been frustrated with existing code and undertaken a re-write. After a couple of weeks, once accounting for all the edge cases I didn’t know about when I started off, I end up roughly where I started but two weeks later. This has happened even with code which I wrote originally.