reuseable software

Donald Knuth, originator of TeX and METAFONT, for typesetting, and for the concept of ”literate programming,” lamented the dirth of reusable software. Knuth is a brilliant guy and a great thinker, and although I’ve yet to read Coders At Work, thinking about software as reusable (which is certainly a prevailing trend,) and the possibility that this might be regrettable has certainly given me something to chew on.

Knuth is without question an Artist and a master craftsman. I suspect that the “regrettable” aspect of reusable computer programs for Knuth, is not that reusable programs are technologically flawed but rather that reusable programs mean that users of computers–cyborgs–can use their machines, and interact with technology without ever needing to know how the underlying technology works.

I don’t know if I can add a lot to this idea. I think it’s interesting and useful to think about addressing technological problems with human solutions in some cases. I think particular around the problem domains of desktop software and systems administration, we’ve stopped “learning how to develop single-use programs,” and have relied on reusable programs. The result is that desktop computer users, don’t know very much about the administration and development of the applications they use, in nearly all cases from advanced users to rank beginners.

My perspective might be skewed because, in the broadest sense possible, my work is focused on answering the claim that “free software is hard to use,” by educating users rather than developing software that makes technology easier to use by removing choice and options.

I think the design philosophy of Arch Linux follows this philosophy. The lack of anything resembling a “standard” configuration in emacs supports the goal of “learn how your technology works,” philosophy.

Returning to “reusable software,” for a moment, I’ll make an argument against myself (in comments), and say that in a lot of situations, the solution to a specific problem is often best solved with specific solutions. If software isn’t going to be reused, and we accept that the writing and rewriting of software is a constant process, I think the result is much more simple programs. Programs that need to only do one thing, or part of one thing well. Programs that are more simple. Better separation of programmatic interfaces and user interfaces. In point of fact, more software that’s built using bits and pieces of existing code.

And above all, more proficient (and arguably happier) users. That’s a good thing indeed.

— Sam Kleinman on 18 August 2009 • Permalink

Comments

About

The Cyborg conflict arises anytime we as humans, interact with technology and computers. The Cyborg Institute explores this conflict and works to develop a individual, social, and technological responeses to these encounters to help you address the technology in your life more effecively.

Cyborg Links

Projects

Cyborg Projects

The Cyborg Institute works on a diverse selection of projects and aims to suport the entire field. Fundamentally, our goal is to further our understanding of how people and communities use technology. Beyond this, we aim to enhance the use and experience of technology for all. Our projects address the indivudal "process" dimensions of this "cyborg interaction," as well as the full range of social, technological, and cultural implications. Watch for news of updates on our blog, or particpate in our evolving projects on the Cyborg Institute Wiki.