---
title: UNIX Philosophy
date: 2022-09-19T14:50:29.000Z
updated: 2026-01-26T01:31:24.276Z
url: https://baku89.com/UNIX_Philosophy
---

# UNIX Philosophy

Unix開発者によってまとめられてきましたが、以下は1994年、マイク・ガンカーズによってまとめられたもののうち、制作ツール開発に直接関係しそうなものの抜粋。

- **定理1**：スモール・イズ・ビューティフル

  - 小さなプログラムは分かりやすい

  - 小さなプログラムは保守しやすい

  - 小さなプログラムはシステムリソースにやさしい

  - 小さなプログラムは他のツールと組み合わせやすい

  - [Orthogonality](/Orthogonality)

  - > 巨大で複雑なプログラムの開発者は、「将来が予想可能で、そして現在とそう大きくは変わらない」という勝手な思い込みを前提としている。(P.22)

- **定理2**：一つのプログラムには一つのことをうまくやらせる
  - 新しい仕事をするために、新しい「機能」を追加して古いプログラムを複雑にするのではなく、新しいプログラムを構築する。(W)

- **定理3**：できるだけ早く試作を完成する

- **定理4**：効率より移植性

- **定理9**：すべてのプログラムをフィルタにする
  - すべてのプログラムの出力が、まだ見ぬべつのプログラムになることを期待する。出力に余計な情報を入れない

- **さらなるUNIXの考え方**

  - **小定理1** 好みに応じて自分で環境を調整できるようにする

    - > アプリケーションに十分な柔軟性があれば、ユーザーはそのアプリケーションをできるだけ使いやすくしようと、その方法を学ぶことに時間をかける。そして、自分で調整した環境に馴染めば馴染むほど、調整が難しかったり出来なかったりする環境には移りたがらない。(中略)最初は、あまりの柔軟性にユーザーはとまどい、選択肢の多さに圧倒されるかもしれない。しかし、最後には、多くのオプションを利用するほうを選び、その学習に時間をかける。

  - **小定理7**: 部分の総和は全体より大きい

  - **小定理8** 90％の解を目指す

  - **小定理9** 階層的に考える
    - この小定理に関しては、[baku89#icon](/baku89#icon)的に異論あり。[https://scrapbox.io/shokai/階層整理型WiKiはスケールしない](/https/scrapbox.io/shokai/%E9%9A%8E%E5%B1%A4%E6%95%B4%E7%90%86%E5%9E%8BWiKi%E3%81%AF%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%AB%E3%81%97%E3%81%AA%E3%81%84) が近い

### 出典

- 『[『UNIXという考え方』](/UNIX%E3%81%A8%E3%81%84%E3%81%86%E8%80%83%E3%81%88%E6%96%B9)』
- [UNIX哲学 - Wikipedia](https://ja.wikipedia.org/wiki/UNIX%E5%93%B2%E5%AD%A6)
