Live data from Hacker News

The Perfect System Doesn't Exist

alexkondov.com

11–20 of 25 posts

Re: The Perfect System Doesn't Exist

#12
post #8

A great skill I have been developing as I mature is the ability to look at a seemingly suboptimal implementation I receive and not be appalled by the perceived sub-optimality but rather appreciative of the history that is embedded in the little details. For me, any system producing correct and useful results is perfect under the constraints of its implementation. Even if the developer was not great, someone was great…

I call it software kintsugi[0].

https://traditionalkyoto.com/culture/kintsugi/

Re: The Perfect System Doesn't Exist

#13
One major reason:

All systems we construct are actually at best models of reality. Because the information content of reality is always bigger, the model must always fail at some point due to the fact that information content is proportional to surface area (Bekenstein bound) so all models are trying to represent with less information a reality that contains more information.

This difference means you can never have perfect predictive fidelity in any system. You do not even need to invoke human frailty but even that is the same - the human mind can never model and predict the universe for the same reason so anything we imagine will always have limits and become wrong as prediction and model at some point.

Re: The Perfect System Doesn't Exist

#14
post #12
post #8

A great skill I have been developing as I mature is the ability to look at a seemingly suboptimal implementation I receive and not be appalled by the perceived sub-optimality but rather appreciative of the history that is embedded in the little details. For me, any system producing correct and useful results is perfect under the constraints of its implementation. Even if the developer was not great, someone was great…

I call it software kintsugi[0]. https://traditionalkyoto.com/culture/kintsugi/

Nice. I'll have to use that idea.

Re: The Perfect System Doesn't Exist

#15
post #8

A great skill I have been developing as I mature is the ability to look at a seemingly suboptimal implementation I receive and not be appalled by the perceived sub-optimality but rather appreciative of the history that is embedded in the little details. For me, any system producing correct and useful results is perfect under the constraints of its implementation. Even if the developer was not great, someone was great…

That is a great skill. I’ve been calling this ‘respect for working software.’ There’s tons of benefits. First it improves your decision making with respect to evolving this piece of software, as you are now less likely to embark on a unnecessary rewrite or refactor. Second it lowers your stress as you can actually enjoy working on the piece of code. Overall you’ll be a (much) more effective SDE.

Re: The Perfect System Doesn't Exist

#16
With the type of software many of us deal with - web, business, enterprise, on general purpose cpu’s, we keep quicksand in our hands and try to shape it continuously to meet ever changing expectations.

Lessons learned over and over: Working code works, and, don’t let perfect be the enemy of good.

If you can change it with little effort it’s as close to perfect as it have to be.

Ofc not all domains are the same, but here I am with quicksand in my hands.

Re: The Perfect System Doesn't Exist

#17
post #13

One major reason: All systems we construct are actually at best models of reality. Because the information content of reality is always bigger, the model must always fail at some point due to the fact that information content is proportional to surface area (Bekenstein bound) so all models are trying to represent with less information a reality that contains more information. This difference means you can never have…

All models are wrong, but some are useful.

It’s impossible to have a correct model, but you can have a model that is valid for its intended purpose. The hard part of engineering is to draw a box around the scope and have everyone agree that’s what is to be done.

Re: The Perfect System Doesn't Exist

#18
post #12
post #8

A great skill I have been developing as I mature is the ability to look at a seemingly suboptimal implementation I receive and not be appalled by the perceived sub-optimality but rather appreciative of the history that is embedded in the little details. For me, any system producing correct and useful results is perfect under the constraints of its implementation. Even if the developer was not great, someone was great…

I call it software kintsugi[0]. https://traditionalkyoto.com/culture/kintsugi/

hey this is super good, might even attempt to put together a short blog post with this as the central idea! thanks!

Re: The Perfect System Doesn't Exist

#19
post #9

You can get pretty damn close if you establish some reasonable constraints. For me, a perfect system is one that is stable over long periods of time. Achieving these outcomes first requires careful selection of tools, frameworks and platforms. Building anything on unstable foundations is never going to end well over time. We have large chunks of code that haven't been modified since ~2014. How many shiny frameworks a…

Yep, that's my idea as well. We have code that has been updated for security but nothing else from the early 00's. It makes building very large systems with tiny teams much easier if you don't go after the latest & greatest.

Re: The Perfect System Doesn't Exist

#20

>I realized that even armed with all the theory and context, the perfect system still remains a mythical creature. In other words - it doesn’t exist. I wouldn't go so far to say this. The perfect system does exist we just need to define it formally. This will take a long time and a lot of research but we can get there. Any time you hear the words "designing systems" it refers to some aspect of reality we don't unders…

I don't think we'll ever be able to calculate program designs, like having a computer design the theoretically optimal {sorting algorithm, hashmap, SQL engine} for a given processor, for a particular performance criterion (average-case and worst-case performance), out of the exponentially exploding set of possible type and function definitions. And "the perfect system" is different on a DS, a smartphone, a desktop PC…

>I don't think we'll ever be able to calculate program designs, like having a computer design the theoretically optimal {sorting algorithm, hashmap, SQL engine} for a given processor, for a particular performance criterion (average-case and worst-case performance)

Not talking about efficiency here. The theoretical optimal for time complexity is already done. We know how to calculate a quantitative measure for average case and worst case performance. For many problems we know the solution for how to optimize for both of the above cases.

When I refer to design I refer to the aspect of computer science we do not have theory for. How do you organize your logic? What is optimal organization of code such that it is optimal and future proof? This area I believe can be formally defined.

Post reply on HN