>>> i think one could write quite an interesting >>> book critiquing modern software development for failing to >>> stop at good enough. >> >> Why would it take a book? DMR [sic] made the point succinctly in his >> critique of Knuth's literate program, showing how a few command-line >> utilities do the work of the Don's elaborately constructed tries. > > Do you have a URL for this?
Yes, sorry I didn't look it up earlier. Bentley, J., Knuth, D., and McIlroy, D. 1986. Programming pearls: a literate program. Commun. ACM 29, 6 (Jun. 1986), 471-483. DOI= http://doi.acm.org/10.1145/5948.315654 It is McIlroy (not DMR), but it looks like he focused on, not writing a literate program, but the engineering benefits of constructing a pipeline from common tools, vs Knuth's elaborate, single-purpose program. >From the paper: "To return to Knuthâs paper: everything there---even input conversion and sorting---is programmed monolithically and from scratch. In particular the isolation of words, the handling of punctuation, and the treatment of case distinctions are built in. Even if data-filtering programs for these exact purposes were not at hand, these operations would well be implemented separately: for separation of concerns, for easier development, for piecewise debugging, and for potential reuse. The small gain in efficiency from integrating them is not likely to warrant the resulting loss of flexibility. And the worst possible eventuality eventuality---being forced to combine programs---is not severe. The simple pipeline given above will suffice to get answers right now, not next week or next month. It could well be enough to finish the job. But even for a production project, say for the Library of Congress, it would make a handsome down payment, useful for testing the value of the answers and for smoking out follow-on questions." Jason Catena