Libraries and Code Libraries

I find the term library, when used in reference to computer programs, to be kind of funny, because it’s nothing like a physical library of books. Maybe it should be.

A library, especially a public library, is a physical place, with aisle upon aisle of reference materials (primarily books, but also journals, newspapers, maps, movies, and more). They’re generally thought of as places of study, of questions and answers, of jumping off points. A place to learn.

In addition to the books, there are also the librarians, critical guides to point you on your way.

Libraries are learning machines.

Now consider a code library. These consist of lists of types and functions your code can call. If you’re lucky, the code comes with documentation and a readme.

The documentation, depending on its quality, can be a form of reference, and can answer the specific question “what is this and how does it work?” But rarely can you really wander the aisles of a code library (it’s also worth noting a code library rarely consists of more than a few authors, far short of the thousands you’d find in a book library). You can only learn as much as the documentation explicitly tells you, and there isn’t a direct way of learning more from the library itself.

(I wonder: should maintainers be thought of as librarians?)

(or: maybe you can only borrow code from libraries, but you have to return it after a few weeks?)

Speed of Light