Narrow Waist

tags
Software Development

A software engineering concept: Design systems in which "everything is an X", where X is e.g. text, files, objects.

The point is to avoid, for M data formats and N operations, an M*N explosion of "glue" code. Instead, if you have a common data type that you can project anything on to, you can get by with M+N. (M and N are like the lobes of an hourglass, with the common data type forming the eponymous "narrow waist" between them.)

This is a very Unix idea, particularly wrt "everything is text". The Oil shell creator refers to narrow waists as a particular case of a "Perlis-Thompson principle".

A Sketch of the Biggest Idea in Software Architecture