4 ms·
"The epitome of genius in my mind is finding the solution that solves the problem without introducing anything at all." Agreed. Albert Einstein once said "Eve
by nfw2 5y ago
"The epitome of genius in my mind is finding the solution that solves the problem without introducing anything at all."
Agreed. Albert Einstein once said "Everything should be made as simple as possible, but no simpler." This tautology sounds a bit silly, but I think the point is that the escalation of complexity needs to be fought with intentional focus.
That said, I think abstraction can be a useful tool for fighting complexity, even if introduced before business needs demand. In other words, developing a series of independent one-off solutions could add more complexity to your system in the long run than finding the right conceptual model that unifies them proactively.
- kjksf 5y ago> proactively And here's the problem. 90% of the time pro-active abstraction (complexity) is never needed and therefore bad. You can always do things retro-actively. If you find yourself writing the same thing 3 times then yes, by all means abstract it away. Good abstractions are not invented; they reveal yourself to you in due time.
- d110af5ccf 5y ago> You can always do things retro-actively. Doesn't this vary depending on who consumes your code and how easily they can adapt to change?
- nfw2 5y agoGood abstractions don't just exist to reduce code reuse; they help people reason about software. They turn logical operations into higher order concepts that are easy to think about. If this weren't true we would write all our programs as single, very long functions. The right abstractions will reduce complexity not add to it. Consider the following information architecture: Cats are warm-blooded animals that produce milk and give live birth. Dogs are warm-blooded animals that produce milk and give live birth. Humans are warm-blooded animals that produce milk and give live birth. vs Mammals are warm-blooded animals that produce milk and give live birth. Cats are mammals. Dogs are mammals. Humans are mammals. I would argue the latter is less complex even though it contains an abstraction. Also, you can't always fix things retroactively. As an IC, you don't control what efforts are funded. Not all organizations invest significant resources in cleaning up tech debt, even it helps long-term productivity.
- gsg 5y agoThis works until the analogue of monotremes shows up to ruin your supposedly flawless categorisation.
- gifnamething 5y agoYAGNI
- nfw2 5y agoI didn't say the categorization was flawless; I said it reduced the complexity of the information. Categories can be useful without being flawless.
- rmdashrfstar 5y agoIt is not a “can be”, it’s a “must be”. Models or an abstraction of complexity are necessarily both reductionist and useful.
- mejutoco 5y ago> The right abstractions will reduce complexity not add to it. Platypus joined the chat.
- wizzwizz4 5y agoMonotremes are mammals that lay eggs. Platypi are monotremes. (If you like, you can change the definition of “mammal” to say “give birth to live young, except for monotremes”. That's exhaustive.)
- ryandrake 5y agoI think the point of the thread is that you're probably not going to need a platypus or a human or even a dog. If the requirements are that you support a cat only, then you just need a Cat class and no big abstraction taxonomy.
- prox 5y ago>Good abstractions are not invented; they reveal yourself to you in due time. Love that quote, that’s usually how it goes for me.
- Y_Y 5y agoThis sounds like Einstein the mythical quote-originator, rather than the human scientist. https://quoteinvestigator.com/2011/05/13/einstein-simple/ https://quoteinvestigator.com/2011/05/13/einstein-simple/ All the same it's a good aphorism. See also: > "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
- kwhitefoot 5y agoAlso: C.A.R. Hoare: “There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”
- nfw2 5y agoApparently this is what Einstein has been documented saying: "...the supreme goal of all theory is to make the irreducible basic elements as simple and as few as possible without having to surrender the adequate representation of a single datum of experience." So I guess the supposed quote is paraphrasing.
- Y_Y 5y agoIt's certainly got the same vibe. I certainly don't want to begrudge Einstein credit here. If you have the dubious honour of knowing physics and German, then reading his work (e.g. [0]) will leave you in no doubt that he was a shining exemplar of this principle. He does get a ton of stuff misattributed to him though. [0] https://onlinelibrary.wiley.com/doi/10.1002/andp.19053220806 https://onlinelibrary.wiley.com/doi/10.1002/andp.19053220806