Background: “Unix philosophy” – basic guidelines, evolution and some criticism

Let us tell you what the essence of philosophy is, who formulated it, expanded and criticized it in the course of development.

(By the way, our next TL; DR-digest about “remote control” and personal information security was released yesterday.)

A photo – Med badr chemmaoui – Unsplash

Basic principles

It is believed that the first of them formulated Douglas McIlroy, author Unix pipeline, in 1978. He published his remarks in the Bell System Technical Journal – copy still online… Later Douglas singled out three basic points:

  • (1) Every Unix program must specialize in a specific task;
  • (2) The output of programs will become the input of others, unknown at the time of the development of the first;
  • (3) Text is a universal interface for interprogram communication.

Development of thought

Over time, the first “rules” were supplemented and rethought. In 1994, Mike Gancarz, one of the maintainers of the X Window System, extended them and encouraged colleagues to:

  • (4) It is more efficient to dispose of already available software solutions;
  • (5) Apply more often scripting languages to improve software portability;
  • (6) Move from idea to working prototype as quickly as possible;
  • (7) Keep track of the complexity of the interfaces and not “overload” them.

Later Eric Raymond (Eric Raymond), programmer, hacker and co-founder Open Source Initiative, described philosophy with a single abbreviation – KISS (Keep it simple, stupid).

A photo – Kristian bjornardCC BY-SA –

A minute of metaphors and criticism

One of the interesting notes we found in the book “A Guide for the Unix Hate” (full text in PDF), which recalls Richard P. Gabriel and his essay “The worse the better“.

In it, Gabriel contrasted the principles of correctness, consistency, and completeness with the ease of implementation and portability of the “Unix philosophy.” And also – he compared really effective software with the evolutionary superiority of viruses (full text of the essay in English).

But despite the emphasis on simplicity and even direct reference to working with the UI (points 3 and 7 above), in an article titled “The Truth About Unix: Terrifying Interfaces” Donald Norman (Donald norman), a scientist and co-founder of the Nielsen Norman Group, criticized the Unix philosophy for lacking any attention to user experience. AT comments he started from his expertise in the field cognitive engineering, highlighted the problems in terms of the work of teams and functions, plus – formulated his own recommendations for the design of systems:

  • consistency of design principles at all stages of system development;
  • the presence of a user-friendly model of the system (mental model);
  • opportunity for them mnemonic tips when working with it.

A photo – Rudolf SchubaCC BY –

Other criticisms of the Unix philosophy revolved around specific features of the NFS filesystem (for example, “crutches“With the lockd Network Lock Manager service – pp. 60-61) and discussion of text-based interfaces. But there were also attempts at conceptual battles on this score.

So, by words Roberta Pike (Robert Pike), the author of UTF-8 and a native of Bell Labs (like Douglas McIlroy), at a certain stage in the development of Unix philosophy it was impractical to write programs that (1) perform only one task. Here extended thread about his comments on Slashdot, in which Pike shares other criticisms of Unix. For example, he talks about the lack of a high level of integration in the network interaction of machines and compares the choice of this system with limiting ourselves to listening exclusively to the compositions of David Cassidy (David Cassidy).

What do you think could complement the basic points in the Unix philosophy?

Additional reading on the topic:

The whole history of Linux. Part I: how it all began
The whole history of Linux. Part II: corporate twists and turns
History of Linux. Part III: new markets and old “enemies”
Benchmarks for Linux Servers

New publications on our Habré:

  • TL; DR: an unusual “remote control” and the issue of screening personal gadgets
  • Who will deal with the security of open source software – new projects and their future

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *