> Also that simplicity is king. Complexity is the enemy.
As someone that has managed engineering teams for large projects, I 100% agree. One of the issues with computers IMO is that it has made bad engineering easier. Back when you had to check everything with a slide-rule, you had a real appreciation for the skill and engineering prowess and experience to make things absolutely dead simple.
One of my favorite things is in the watch world, every mechanism besides showing time is called complication. When one talks about a feature, or an item as a complication, just the act of doing that forces one to be more deliberate.
I like to say that whatever the complexity is, it is in the nature of the problem itself and isn’t something that’s open for us to design. Only when we design a solution we risk introducing complication.
Of course, we can always choose to solve the least complex problem.
True, but also modeling and iteration does lead you to unexpected solutions that can in turn solve complex problems that you couldn't have imagined could be solved. Landing rockets being an easy one, but that kind of iterative approach has been put to work in all kinds of fields.
One of the sources of this, which is now over, was the exponential increase in computing power. You could add complexity and your code would always run faster anyway, one of the popular benchmarks saw worse results on average than last year which never happened before. There are a lot of reasons for it some more speculative than others, and clearly computers will get faster in the future. But still.
No longer can software engineers arbitrarily add bloat and just get away with it.
As someone that has managed engineering teams for large projects, I 100% agree. One of the issues with computers IMO is that it has made bad engineering easier. Back when you had to check everything with a slide-rule, you had a real appreciation for the skill and engineering prowess and experience to make things absolutely dead simple.