Unix vs. Microsoftって感じ

今日は春らしい天気で気持ちがいいですね。
こんなときは友達と外で遊ぶのが楽しいのですが、今日もヒルズライブラリーで企画&開発をやってます。
今日はそこそこ混んでますね。

 以前コメントいただいたnyajiraさんからのおすすめで「Unixという考え方」を読みました。
Unixとは首尾一貫した哲学のもとに築き上げてきたソフトウェア群であることをわかりやすく解説しています。
その中で印象に残ったのは以下のようなところでした。

1 Small is beautifful
 ソフトウェアは小さければ小さいほどいい。
それは動作スピードも早くなるしメンテナンスもしやすいからである。

2 効率よりも移植性を優先する
 ハードやプラットフォームは日々進化する。移植性が低いソフトウェアはプラットフォームが変わることによって動かなくなってしまう。
シェルスクリプトは最高に移植性がよい。(Windowsのコマンドプロンプトでは動かないですけどね。)

3 プロトタイプ型開発手法
 入念な設計によっていいソフトウェアが作られることは少ない。
なぜなら開発者は学習することによってよりよいソフトウェアを作ることができるからである。
プロトタイプでまず動かしてみると設計段階では気がつかなかったことがわかるようになる。(スクラップアンドビルドですね。)

4 てこの原理を応用せよ
 偉大なプログラマーは既存のコードやコマンドを組み合わせ、それに付加価値をつける。
一から自分で作るのではなく先人が作ってくれたすばらしい資産を利用すべきである。

5 拘束系プログラムを作らない
 ユーザーをコンピューターの前に拘束するようなユーザーインターフェースを持つソフトウェアを作ることは極力避けるべきである。
そのようなプログラムはUnixの小さいプログラムを組み合わせるというアーキテクチャーを壊すからである。

Unixはやはり宗教だなと思います。
多少の取っ付きにくさを犠牲にしてまでユーザーの自由を重視する考え方は権威に対抗する革命家の雰囲気さえ感じます。
私はもともとUnixエンジニアですが、なぜUnixを選んだかと言われたらやはりこの自由度の高さでしょうね。
Windowsは確かに使いやすいですが、やはり拘束的ですね。

これを読む前にJoel on Softwareという本も読みました。
彼はMicrosoftでExcelを開発していたエンジニアなのでMicrosoft教ばりばりです。
彼の言うことも間違ってはいないと思います。
よりよいソフトウェアを作るためのアプローチが違うだけなんですよね。

ただ私はUnix的な考え方の方が好きです。

2冊あわせて読むと違いがわかっておもしろいですよ。



UNIXという考え方―その設計思想と哲学UNIXという考え方―その設計思想と哲学
Mike Gancarz 芳尾 桂

オーム社 2001-02
売り上げランキング : 99,591
おすすめ平均

Amazonで詳しく見る
by G-Tools

Joel on SoftwareJoel on Software
Joel Spolsky 青木 靖

オーム社 2005-12
売り上げランキング :

Amazonで詳しく見る
by G-Tools