Hacker News new | past | comments | ask | show | jobs | submit

Simplicity is an advantage but sadly complexity sells better (2022)

https://eugeneyan.com/writing/simplicity/
loading story #40266804
loading story #40267052
loading story #40266961
loading story #40271458
loading story #40266745
loading story #40269787
loading story #40266720
loading story #40267197
loading story #40273596
I highly recommend the Rich Hickey talk “Simple made Easy”. Complexity doesn’t sell well at all, but easy does. If a company can hire a bunch of people that know how to use ‘foo’ and the industry keeps talking about ‘foo’, they’ll choose it even if foo is a complete boondoggle. See lambda architecture, most Apache projects, containers, etc
If only simplicity always meant easy to use. There would be no paradox if it did.

One big problem is that for any product/feature not used in isolation in a very controlled context, simplicity is often suboptimal, inflexible and limiting.

Complexity is often the result of building one thing that works well in a variety of situations, a lot of interoperable things or features to work (relatively) well together, or one thing with a lot of ways to interface with it. The worst case is all three - which is true for a lot of software.

The result is a simpler purchasing choice, buy the most flexible product, but at the cost of far more product complexity than any particular user needs.

> One big problem is that for any product/feature not used in isolation in a very controlled context, simplicity is often suboptimal, inflexible and limiting.

"suboptimal" from the global perspective, because to me a simple solution should be a local optimum for a specific problem. For instance, one could argue that the Unix motto "do one thing well" generate lots of specialized programs that, even though they are an order of magnitude smaller than generic programs individually, together they take globally more space for same service level - a symptom of that is e.g. Busybox.

For physical devices, the problem is probably more acute, or at least more visible.

"inflexible and limiting" are terms I can agree on, that's generally how simplification works unless you have a genius idea. I don't see those words as absolute negatives, though, but rather as terms in a trade-off. If the software is open those issues can be mitigated sometimes by hacking; one advantage of starting from a simple (simplistic even), inflexible and limiting solution is that it's easier to evolve - that is to add the necessary complexity.

loading story #40274589
Completely agree here. Complexity is the result of combining simple things together to optimally solve a specific problem under specific boundary conditions. The reason so many software devs are frustrated by complex artifacts, is that the initial problem and boundary conditions are usually not documented, often because some boundary conditions are actually a hidden agenda hostile to the recipient of the artifact.
And thus the emergence and rise of "opinionated software".
loading story #40266815
loading story #40266748
loading story #40266619
loading story #40274758
loading story #40270240
loading story #40266864
loading story #40273446
loading story #40267915
loading story #40268418
loading story #40266579
loading story #40275206
loading story #40276077
loading story #40276407
loading story #40266872
loading story #40270964
loading story #40267361
loading story #40270543
loading story #40268766
loading story #40266789
loading story #40266904
loading story #40270559
loading story #40274918
loading story #40276646
loading story #40276323
loading story #40270477
loading story #40282928
loading story #40276390
loading story #40282915
loading story #40266879
> Simplicity is an advantage but complexity sells better

Exactly my feeling with TypeScript

loading story #40272405
loading story #40266695
loading story #40276411
loading story #40269456
loading story #40271488
loading story #40266631