WindowsにもMacにも影響を与え続けるUNIXの設計思想
UNIXというOSがどのような設計思想のもとに作られたのかが9つの定理に分けて書かれています。9つの定理を守ることで、ソフトウェアを作るときに陥りやすい落とし穴を避けられるようになりそう。
これを守れば、プログラミング初心者でも役に立つものが作れる!
私はWEBサイト構築からこの業界に入ったので、初めて触れたプログラミング言語はPerlだった。メールフォームをはじめとするほとんどのCGIがPerlで書かれていたからというのがPerlを選んだ理由だ。
で、Perlで自分の仕事の一部を自動化するためのスクリプトを書くとき、この本に書かれている以下の定理が非常に役立った。
定理2:一つのプログラムには一つのことをうまくやらせる
定理5:数値データはASCIIフラットファイルに保存する
定理9:すべてのプログラムをフィルタとして設計する
上記の定理を元に、スマートなやり方ではないかもしれないけど、
インプットファイル1(input1.txt) => 読み込み => スクリプト1(shori1.pl) => 書き出し => アウトプットファイル1(output1.txt)
アウトプットファイル1(output1.txt) => 読み込み => スクリプト2(shori2.pl) => 書き出し => アウトプットファイル2(output2.txt)
アウトプットファイル2(output2.txt) => 読み込み => スクリプト3(shori3.pl) => 書き出し => アウトプットファイル3(output3.txt)
・・・
という風に処理をつなげていくことで、下手くそなりに欲しい結果を得るプログラミングが可能になった。「人間が目でチェックして、手作業で行うよりも何十倍も早く正確に処理が終わる」という目的が果たせていればOKなものなので、これで十分だった。
移植性を最重要視する大切さが身にしみてわかった
プログラミングを始めてLinuxを触るようになった当初、私は「UNIX系OSは、なんでこんなに不親切なんだ」と憤りを感じていました。が、この本を読んで納得。彼ら(UNIXを設計した人たち)が求めたのはユーザーフレンドリーではなく、効率性、堅牢性、移植性なんだからそうなるよね。
本の中の「定理4:効率性より移植性」というのがあります。これはOSやプログラミング言語のバージョンなどの環境が変わっても、そのまま動かせるものを作っておいたほうがいいよ、ということです。
私はWEB屋なので、ソフトウェア作るためにゴリゴリプログラミングするという機会はほとんどありません。一方でテキストの定型処理を行う場面はメチャクチャ多いです。そんなときに使える自分だけのPerl道具箱みたいなスクリプト群があります。
このPerlスクリプトたちは、WindowsXPを使っていたころに書いたものですが、Windows7でもUbuntu12.04でもUbuntu14.04でもそのまま使えちゃいます。OSが変わろうが、Perlのマイナーバージョンが上がろうが動かせるというのは、ものすごくありがたいことです。同じ入力に対して、同じ結果が欲しい処理のために何度もプログラム書き直したくないですからね。
このことは「UNIXという考え方」を読んでいたからこそ得られた恩恵かなと思ってます。
UNIXという考え方―その設計思想と哲学
UNIXを作った人たちは何を重視して設計したのかを知ることは、非プログラマーであっても業務改善のヒントになるところがあると思います。150ページも無い薄い本なので、気になったら一読してみることをオススメします。
単行本: 148ページ
出版社: オーム社 (2001/2/1)
言語: 日本語
ISBN-10: 4274064069
ISBN-13: 978-4274064067
発売日: 2001/2/1
コメント