4 ms·
I disagree with Sustrik's assumption that software drifts to become a collection of non-reusable components. His observation is an interesting theory but I thi
by bcg1 11y ago
I disagree with Sustrik's assumption that software drifts to become a collection of non-reusable components. His observation is an interesting theory but I think it breaks down because it could only really be a "law" if it is true that reusable (does he mean replaceable?) components are always switched out for irreplaceable ones.
Most projects I've worked on start out hairy messes and if they are cursed with success new requirements will eventually justify the cost of replacing the irreplaceable. Well designed components aren't quickly switched out for poorly designed ones because developers don't want to let that happen. Its not safe to assume that poorly written components are better suited to survival... to the contrary, they are the most likely targets for removal in the first place.
- rcthompson 11y agoIt doesn't require that replaceable components are always replaced with non-replaceable ones. The point is that over time, a replaceable component is likely to be swapped out multiple times, until, probably by accident, it is replaced with a component that is no easily replaceable, as which point it becomes stuck (e.g. glue code is written specifically to interface with that component and would be difficult to rewrite for a replacement). In mathematical terms, you can imagine it as a Markov chain describing the component currently slotted in, where non-replaceable components are the absorbing states.
- geon 11y agoIf the easly replacable component is good, there will be no reason to replace it at all. Components aren't getting replaced willy-nilly.
- rcthompson 11y agoYes, but easily-replaceable components are still going to be replaced more often than difficult-to-replace ones.
- geon 11y agoZero * n is still zero.