UNIX哲学
リチャード・P・ガブリエルは、UNIXの優位性のひとつは「より悪いことは、より良いことだ」("Worse is better")という哲学にあると述べている。ここではインターフェースと実装の両面がシンプルであることが、他のいかなる特性(正確さ、堅牢さ、完全さ)よりも重視される。
その一方で、以下のような疑問も投げかけている。例えば、もしI/Oやsleepなどのシステムコール(例:read()、write()、open()、select())により、あるプロセスがカーネル内で長期間ブロックされているときに、そのプロセスにシグナルが通知されたら何を行うべきだろうか。システムコールが完了するまでの長い間(場合よっては永遠に)シグナルは遅延されるべきなのか。はたまた、カーネルはシステムコールをあとで再実行できるように状態を保存した上で一時中断し、シグナルハンドル、システムコールへと再復帰すべきか。いずれも時間はかかるがシステムコールを完遂する完全性を考慮したものである。
しかしながら、このようなケースではケン・トンプソンとデニス・リッチーは完全性よりもシンプルさを好む。聡明期のUNIXはシステムコールを終了させ、エラーを素早く通知する - Interrupted System Call(システムコール実行中にユーザーが割り込みを発行)、エラー番号4(EINTR)。後にシステムコールは再開されない。この実装はI/Oシステムを設計、理解しやすくする事に利点がある。
hand-hackingは避けよ。
開発者は手書きでコードを書くことを避け、代わりに抽象的な高水準プログラムを書いて、コードを生成する必要がある。ヒューマンエラーを減らし、時間を節約することを目的とする。