Comment by api

19 hours ago

My #1 rule for all engineering: simplicity is harder than complexity.

I truly wish more software engineers thought this way. I see a lot of mentality in software where people are even impressed by complexity, like "wow what a complex system!" like it's a good thing. It's not. It's a sign that no effort has been put into understanding the problem domain conceptually, or that no discipline has been followed around reducing the number of systems or restraint over adding new ones.

I've seen incredibly good software engineers join teams and have net negative lines of code contributed for some time.

If we ever encountered, say, an alien race millions of years ahead of us on this kind of technology curve, I think one of the things that would strike us would be the simplicity of their technology. It would be like everything is a direct response and fit to the laws of physics with nothing extraneous. Their software -- assuming they still use computers as we understand them -- would be functional bliss that directly represented the problem domain, with every state a pure function of previous state.

We might get to this kind of software eventually. This is still a young field. Simplicity, being harder than complexity, often takes time and iteration to achieve. Often there's a complexity bloat followed by a shake out, then repeat, over many cycles.

"Perfection is achieved not when there is nothing more to add, but when there is nothing left to take away."

-Antoine de Saint-Exupéry

> Their software -- assuming they still use computers as we understand them -- would be functional bliss that directly represented the problem domain, with every state a pure function of previous state.

I love that this is also a model of reality. Everything is made of differential equations.