UNIX哲学 - CtrlShift.net

UNIX哲学

UNIXというものは、OSである以上に、信念・思想・哲学という扱いをされることがしばしばあります。

それは書籍『The Art of UNIX Programming』の表紙の絵にも表れているように、師が弟子たちに教えていくような、「尊い教え」のような類のものです。

その哲学の中でも、特に2種類の考えについて注目しようと思います。

Doug McIlroyのUNIX哲学

1種類目は、Doug McIlroy(UNIX創始者の一人でpipeの発明者)のUNIX哲学です。

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.

[訳]

UNIXの哲学は以下である。

1つのプログラムが、1つの役割に専念する。

複数のプログラムは協調して働く。

プログラムは汎用的インターフェイスである標準入出力を扱う。

そして、これらは「Do one thing, do it well.(ただ1つの役割を行え)」という言葉にまとめられます。

UNIXの一つ一つのコマンドを見ると感じるように、それぞれのコマンドは自分自身の担当の仕事のみに注力しています。

自分でプログラムを組む場合には、そのプログラムの仕事内容や担当の範囲をよく考え、余計な機能を付けないことが、UNIXの哲学を守る方法なのかもしれません。

Mike GancarzのUNIX哲学

2種類目は、Mike Gancarz(X Window System設計チームの一員)のUNIX哲学です。

これは9条から成る教えです。

  1. Small is beautiful. (小さいものは美しい)
  2. Make each program do one thing well. (1つのプログラムは単純な1つの機能を行う)
  3. Build a prototype as soon as possible. (なるべく早くプロトタイプを作成せよ)
  4. Choose portability over efficiency. (効率よりも移植性を重視せよ)
  5. Store data in flat text files. (データは単純なテキストファイルに格納せよ)
  6. Use software leverage to your advantage. (ソフトウエアを自らを助く手段として利用せよ)
  7. Use shell scripts to increase leverage and portability. (シェルスクリプトを利用し自らを助け、移植性を高めよ)
  8. Avoid captive user interfaces. (ユーザ・インターフェースを1つに強制するな)
  9. Make every program a filter. (物事を階層に分割して考えよ)

これからプログラムを作る上でも、いろいろ考えさせられる文章です。

短いながらも先人の知恵が表されています。

私もこれらの文章を、ときどき思い出せるようにして、UNIXのシステムに溶け込みやすいソフトウェアを作っていきたいものです。

[参考リンク]

Permalink| TopPage|

Archives

About Site

このサイト「CtrlShift.net」では、IT業界の動向、ソフトウェア開発技術、ネットの情報、アイデアなどなどをまとめて配信しております。

多くのITディベロッパーのため、広くは世界のため、そして最低限でも自分のために、有益な情報を集めていきます。

管理人: CtrlShift

膨大で無秩序なデータの中から、有益な情報を抽出する技術を研究。

主にC/C++、PHP、Python、Lisp(趣味)を使用。

管理サイト

RSS

Recent Articles

Archives

Copyright © 2008 - 2017 CtrlShift.net
All rights reserved.