Warning: philosophical, almost silly, post about knots ahead
While I was getting our sailing boat in order for a trip during the past weekend, I had an insight.
Good software code is like a reliable knot
I was tying some ropes and it hit me how knots can be as beautiful, simple, messy and complex as code is.
- A good knot should be elegant but robust
- A good knot should be simple enough to understand and solve by another person
- The more complex the knot is, the more open it is to vulnerabilities and weaknesses
- Using existing knots which are proved to work in certain conditions is good
- A good knot in one situation may not be the optimal choice in another
Now switch knot above to piece of code or software.
I reckon you might be able to draw parallels about programming to many areas, but I think knots are one of the clearest comparisons.