UNIX won

I've mentioned that I am enthusiastic about "DevOps" not because it is "the new thing," but because it is the triumph of "the old thing" my friends and I were advocating 20 years ago, and the geniuses who occupied Bell Labs in the 70s were advocating well before that. (I really can hardly believe what a collection of brilliant people wound up together at Bell Labs at that time.) To illustrate that point, let me quote a Bell System Technical Journal paper from 1978, explaining the "UNIX philosophy"*:
  1. Make each program do one thing well. To do a new job, build afresh rather than complicate old programs by adding new "features".
  2. Expect the output of every program to become the input to another, as yet unknown, program. Don't clutter output with extraneous information. Avoid stringently columnar or binary input formats. Don't insist on interactive input.
  3. Design and build software, even operating systems, to be tried early, ideally within weeks. Don't hesitate to throw away the clumsy parts and rebuild them.
  4. Use tools in preference to unskilled help to lighten a programming task, even if you have to detour to build the tools and expect to throw some of them out after you've finished using them.
Point 1 is now given the trendy buzzword of "microservices."

Point 2, in the DevOps world, is suggested in the notions that every IT procedure should be "scriptable," and that these procedures can easily be fitted together.

Point 3 is today called "continuous delivery" or "continuous integration."

Point 4 is today called "infrastructure as code."

* Yes, yes, calling every single set of precepts a "philosophy" is an abuse of the term "philosophy," but we can't fight every righteous battle all at the same time, can we?


Popular posts from this blog

Central Planning Works!

Fair's fair!