ユニケージ開発手法
1.ソフトウエアの特徴
標準環境の考え方
ユニケージのソフトウエアは、UNIX系のOS+シェルスクリプトのみで構成されています。UNIX系のOSであれば、必ずシェルは実装されているので、ユニケージ自体、UNIX系OSであれば、すべて動作するということです。
ユニケージは移植性を高めるために、OSやシェルの方言の使用をなるべく避け、その基本機能だけを組み合わせてアプリケーションの構築を行います。
従来の移植性確保の考え方が、多岐にわたるOSやミドルウエアのラッパーを作成し、標準的な開発環境を用意することを指向しているのに対し、ユニケージは、標準的なハードウエアの上で、経年劣化しないメインストリームOSを選び、その中のさらに標準的なコア部分のみを選んで、移植性を担保するという道を選んでいます。
これにより、ソフトウエアのクッション層を省き、ハードウエアのスピードアップを直接享受することができるのです。ユニケージはソフトウエアの進歩は、階層化することでなく、なるべく数少ない良いものの組み合わせを見出すことにあると信じています。
小さく効率的な部品
シェルスクリプトの中核をなすソフトウエアはコマンドです。しかし、従来のUNIX系OSに標準に実装されている sort や cat コマンド等だけでは、業務処理には足りません。
UNIXにはユーザー自身が独自コマンドを作成する楽しみが残されています。私たちは、過去2000以上のコマンドを作成し、現在はそれらを数十個のコマンドに集約しています。
ユニケージオリジナルコマンド自体は多機能でもありませんし、奇をてらったものでもありません。例えば、self/delf (列の選択) join1/loopj (データの結合)など、単純な見た目で、その外部仕様が分かれば、多くの人が独自にソースプログラムを記述して、同機能のコマンドをつくることができることでしょう。
ユニケージの独自性の一つは、このコマンド群にあるのは確かですが、コマンド自体に秘匿性の高いノウハウがあるものではありません。それは、ナイフ、フォーク、スプーンの発明に似ています。それらの食器の見た目は、誰でも理解可能なものですが、それは長年の経験の中で、シンプルに纏め上げられてきたものです。ユニケージオリジナルコマンド群は、システム構築の基本的な要素部品からなっており、誰でも理解可能で、利用可能です。
ユニケージにとって、優れたソフトウエア技術とは、一部の人にしか理解できない複雑さや難解さに基づくものでなく、優れたアイデアをだれでも理解可能なシンプルな技術で実現し、卓越したセンスと多くの経験の中で磨き上げられたものであると私たちは確信しています。