UNIX哲学
GNUプロジェクトによる標準的なUNIXプログラムの代替(diffやfind等)がUNIX哲学に従うものであるのか、あるいはそれを誤解しているのかは議論の分かれるところである。おそらく、UNIXに古くから関わる人々のうちのいくらかは後者を主張するであろう。なぜならGNUプロジェクトのツール群はしばしばUNIXのものよりも十分に大きく、また機能も豊富だからである(GNUはコーディング標準において、いくつかの点でUNIXと同じにしないことを薦めている)。
GNU以前の1983年、ロブ・パイクはUNIXの基本的なツールについて、BSDによって拡張された機能のいくつか(代表例として挙げられたのは、cat に制御コードを文字に変換して可視化させる -v )の仕様が、UNIX的でないとした批判がある。UNIX哲学に従えば、cat -v の機能は独立したフィルタで果たされるべきである。本来「連結」コマンドである cat が、単にストリームを読んで書くだけの目的に流用されることが多いとはいえ、それに加えてあれこれと機能を持つべきではないという考え方もある。
同様にして批判されたls コマンドのオプション:出力を表示される幅に合わせて整形する機能は十分に便利であるが、UNIX哲学に従えば column コマンドをパイプで繋ぐ必要があり、これは煩わしいと考える事もできる 。
シンプルなアルゴリズムとシンプルなデータ構造を使うべし。
ルール5: データはすべてを決定づける。もし、正しいデータ構造を選び、ものごとをうまく構成すれば、アルゴリズムはほとんどいつも自明のものになるだろう。プログラミングの中心は、アルゴリズムではなくデータ構造にある。
ルール6: ルール6は存在しない。
ルール1と2は、ドナルド・クヌースの格言「早すぎる最適化は諸悪の根源である」を言い換えたものである(最適化 (情報工学)#最適化する時期も参照)。
ケン・トンプソンはルール3と4を「疑いがあるときは総当たり(brute force)を使え」と言い換えている。これらは設計哲学のKISSの例でもある。
ルール5はフレッド・ブルックスが以前に「人月の神話」で述べている。ジョン・ベントレーの Programming Pearls にも同じ原則が述べられている。これは「スマートなデータを使うつまらないコードを書け」と短縮されこともある。また「データ構造が十分に良いものなら、それを扱うアルゴリズムは平凡であるべきだ」というガイドラインの実例でもある。
ルール6はモンティ・パイソンの「ブルース・スケッチ」をふざけて引用したのものである。