I loved that article... thanks Bill. I think Joel pushes the case a little past its logical limit - always a great way of generating sharp contrasts. It doesn't endorse *bad* design or ignoring what can be (productively) gleaned from best-practices. I'm a platform agnostic, but my company does Rails and .NET. I think these are the duct tape trends Joel is talking about, as another forum poster noted. When I was consulting on Java projects, we'd invariably have a conversation with "the guy." "The guy" was the one who *wrote* the application server or knew (and only he knew) precisely how the reflection-based, auto-generated, JVM optimized, semi-stateless EJB's were callable - or whatever. I liked that guy. I admired that guy. But, we have clients now, and I'm glad we don't have that guy. We've served about 40 clients in 8 years. One manufacturing client gave us a material-usage optimization problem once. That was cool. The rest are moving data around, multiplying, dividing, adding, subtracting, and then moving the data around again. So, I think the duct-tape programmers have simple factored out "the guy" and his arcane understanding. But, in all fairness, different applications require different degrees of design-analysis and fault-tolerance. If the .NET runtime or a JVM were stove-piped, the down-stream pain would be significant. If my ducttape programmer opts for a long switch case over an interface for a social networking website.... well... thanks for getting it done on time.
M
mycostech
@mycostech