it feels like WWW is a kind of product that is worth designing better. why not take a little longer to make it simpler and more extensible? it doesn't mean it has to be built by a huge committee fighting over standards and trying to include every kitchen sink anyone wants, but it does seem more like a public good than some company's product.
as for "duct tape," maybe it conflates two concepts? i personally think "fast and simple" and "fast and crap" are two different ballgames. my first projects were over my head, so i built crap. then i built crap faster. these are good for throwaway demos, maybe prototypes.
at some point building crap became slow. good design simplifies problems. good abstractions and good framworks make it easier to add more with less code. it's faster to add features, and much less buggy. the upfront cost to building the first feature takes a bit longer to get right, but upon a strong foundation one can really roll. it's like being bound by linear v constant time. when one considers handling bugs in crap code, the worst case becomes exponential time.
i guess what i'm saying is that the complexity of the solution should be appropriate for the entire situation: the developer skillset and prior experience, the scope of the project, the time available, the importance of iteration, extensibility and maintainability, etc.
duct tape is good, but you still have to figure out where to draw the line between overzealous copy-pasting and meta-programming.
as for "duct tape," maybe it conflates two concepts? i personally think "fast and simple" and "fast and crap" are two different ballgames. my first projects were over my head, so i built crap. then i built crap faster. these are good for throwaway demos, maybe prototypes.
at some point building crap became slow. good design simplifies problems. good abstractions and good framworks make it easier to add more with less code. it's faster to add features, and much less buggy. the upfront cost to building the first feature takes a bit longer to get right, but upon a strong foundation one can really roll. it's like being bound by linear v constant time. when one considers handling bugs in crap code, the worst case becomes exponential time.
i guess what i'm saying is that the complexity of the solution should be appropriate for the entire situation: the developer skillset and prior experience, the scope of the project, the time available, the importance of iteration, extensibility and maintainability, etc.
duct tape is good, but you still have to figure out where to draw the line between overzealous copy-pasting and meta-programming.