次: , 上: Opening the software toolbox


ツールボックスの紹介

今月のコラムは,GNUプロジェクトの周辺だけに関連するもので,そこでは, GNU/Linuxシステム上のいくつかのGNUツールと,それらの使用方法を記述しま す.それは正に,プログラム開発と使用方法の“ソフトウェアツール”の哲 学です.

ソフトウェアツールの哲学は,初期設計と(LinuxとGNUが本質的に真似ている) Unixの開発では重要で不可欠な概念でした.不幸にも,インターネットワーキ ングと派手なGUIの現在の出品物では,それは王道からそれてしまっているよ うに感じられます.それは多くの種類の問題を解決するため,強力で精神的な モデルを提供するので残念です.

ズボンのポケット(またはハンドバッグ)に,スイスのアーミーナイフを持ち運 んでいる人もたくさんいます.スイスのアーミーナイフは有用なハンディーツー ルです.それはいくつかのナイフの刃,ネジ回し,毛抜き,楊子,爪やすり, 栓抜き,そしてその他にいくつかのものがきっとあります.毎日の,単純な汎 用のツールが必要な小さな様々な仕事でおあつらえ向きです.

一方,経験豊富な大工は,スイスのアーミーナイフを使用して家を建てません. その代わりに,専門的な道具 — のこぎり,かなづち,ネジ回し,かんな等 がぎっしり詰まった道具箱を持っています.そして,それぞれの道具をいつど こで使用するのか知っています.ネジ回しを扱いながら,釘を打っているとこ ろを見たことはないでしょう.

ベル研究所のUnix開発者は,全て専門的なプログラマと訓練されたコンピュー タ科学者です.彼らは,一つのプログラムのみを利用するため,一つで全てに 適するプログラムをユーザに提示する一方,そのようなプログラムは以下のよ うになることが分かりました.

  1. 書くのが難しい.
  2. 管理とデバックが難しい.
  3. 新しい状況に対し拡張が難しい.

その代わりに,プログラムは専門的なツールであるべきだと感じました.要す るに,それぞれのプログラムは,“一つのことを上手にすべきである”という ことです.それ以上でも以下でもありません.そのようなプログラムは,設計, 作成がより単純で,正しいものを得られます — ただ一つのことをするだけ です.

更に彼らは,良いマシンでプログラムを一緒にハックするため,全体は部分の 集合より偉大であることに気付きました.いくつかの特別な目的のプログラム を組み合わせることで,プログラムが設計された目的には無い特定の仕事を達 成したり,特定目的のプログラムを書く必要がある場合,より速く簡単にそれ を達成したりできました.我々は,このコラムでこれ以上の,いくつかの(古 い)例を見ます.(重要な追加点は,まだいくつかのアプリケーションがツール ボックスに無い場合,必要があれば回り道して,最初に必要なソフトウェアツー ルを構築することです.)