src: https://homepage.cs.uri.edu/~thenry/resources/unix_art/ch01s07.html

The Unix philosophy emphasizes building simple, short, clear, modular, and extensible code that can be easily maintained and repurposed by developers other than its creators.

The Unix philosophy favors composability as opposed to monolithic design.

Later summarized by Peter H. Salus in A Quarter-Century of Unix (1994):[1] This is the Unix philosophy:

  • Write programs that do one thing and do it well.
  • Write programs to work together.
  • Write programs to handle text streams, because that is a universal interface.

would add:

  • software minimalism

    • only run as little software on a system (even if it has plenty of resources) as absolutely necessary
    • for example: don’t run full blown desktop guis on servers that do not need them
      • a lot of admins rely on the “html gui” webmin, and virtualmin
        • if that helps to keep a system in well working secure shape, that’s fine but… it is not optimal for two reasons:
          • less software = always better
            • at least enhance security with a ssh-tunnel, meaning the port to access web-console (80 or 443) should only be accessible by localhost via ssh-tunnel (if there are zero-day exploits against latest OpenSSH (aka OpenSSH hacked) it’s “all internet offline doomsday” anyway… so this very very critical piece of software needs relentless testing and fast updates/patching)
          • gui-admins using this software, know “the gui buttons” but not the bash commands

Malcolm Douglas McIlroy: “Everything was small… and my heart sinks for Linux when I see the size of it. […]

The manual page, which really used to be a manual page, is now a small volume, with a thousand options…

We used to sit around in the Unix Room saying, ‘What can we throw out? Why is there this option?’

It’s often because there is some deficiency in the basic design — you didn’t really hit the right design point.

Instead of adding an option, think about what was forcing you to add that option.” (src: https://en.wikiquote.org/wiki/Doug_McIlroy)

https://archive.org/details/DougMcIlroy_AncestryOfLinux_DLSLUG

Ken Thompson and Dennis Ritchie, key proponents of the Unix philosophy.

“we are trying to make computing as simple as possible – in the late 1960s Dennis Richie and I realized that the then current Operating System where much way too complex – we attempted to reverse this trend by building a small simple operating system on a minicomputer” (Ken Thompson)

“What we wanted to preserve was not just a good programming environment in which to do programming – but a system around which a community could form – fellowship – we knew from experience that the essence of communal computing – as supplied by remote access time sharing systems – is not just to type programs into a terminal instead of a key-punch – but to encourage close communication” (Dennis M. Ritchie)

https://homepage.cs.uri.edu/~thenry/resources/unix_art/ch01s06.html

https://en.wikipedia.org/wiki/Unix_philosophy

“As a programmer, it is your job to put yourself out of business. What you do today can be automated tomorrow.”

Doug McIlroy

Damn this guy is a philosopher.

Working in IT seems to be just like capitalism itself: working to make one’s job obsolete. “great” outlook.

There need to be alternative lifestyles that make sense and are sustainable.

admin