James Britt
Posts: 1319
Nickname: jamesbritt
Registered: Apr, 2003
|
|
Re: Laws of Software Compexity
|
Posted: Jul 25, 2003 8:54 AM
|
|
So in summary, the Laws of Sofware Complexity are: <snip/> Pretty, cool don't you think?
Um, well, comparing software to some physical science, such as physics, is not new. The notion of conservation of software complexity is well known.
Still, it's nice to see people discuss this, but I think Matt misses the larger issue. Knowing that complexity is conserved, the question is Where to put it? Who pays for it? In Windows (theoretically), the complexity for end-users is reduced at the expense of those writing the OS (more or less). In most Linux distros, more complexity is pushed back at the user, leaving a more open and (perhaps) simpler system.
I've seen many systems that are hard to configure because the developer wanted it to be easier to write the code. Or systems that don't play well with others because the complexity was pushed out towards the API.
It's like a water bed; if you push down in one place, it pops up in another. App design requires a deliberate decision about who must live with what degree of complexity, and how systems are partitioned to keep complexity from spilling over to other areas. OOP, message-oriented programming, and service-oriented architecture are some of the ways people try to address this.
Most important, though, is seeing that these sorts of analogies are themselves good examples of leaky abstractions. Over-indulgence leads to the same sorts of probems we see, for example, from people who think of the Internet as a highway, or as a printing press, or as TV.
Overplayed comparisons can obscure seeing things for what they really are.
|
|