Re:The Law of Conservation of Complexity
by contextfree on Thursday February 20, 2020 @03:39PM
(#22378369)
If the complexity is truly irreducible, is it possible to truly hide it from the user either?
Continuing to handwave, if the system as a whole is something like "user complexity + program complexity >= problem complexity", you can indeed hide it from the user in many cases by pulling it into the program itself. Otherwise, programs would have no utility at all. That's essentially their whole purpose, is to pull it away from the user by putting it in the program.
Re:The Law of Conservation of Complexity
by jfengel on Thursday February 20, 2020 @04:27PM
(#22378805)
Probably not, but you are pointing out kind of an oddity in the adage. Complexity should always live on the side of the developer, not the user. Any design choice that says, "We could figure out how to do this, but we didn't, so we'll make the user do it for us" is just outright bad. That's not an adage; that's just an injunction not to be a bad designer.
What's more interesting is that even within the domain of the user space, there is an irreducible complexity. You can push it around, but you can't make it go away. Figuring which users you will inconvenience, how often, and how bad it will be -- that's the artistry.
You can replace a hard disk with a solid state drive, and most users would not notice a thing except it might be a bit faster and less noisy. An enormous amount of complexity is hidden behind a simple interface.
The name is misleading to a scientist, who has a specific understanding of what "conservation" means. And in particular, a very specific notion of what a "conservation law" is. Which this does not follow.
Getting past the name, it's a useful adage. But the name adds unneeded complexity, placing a burden on people who are forced to learn a different intention for a well-understood term.