トップ «前の日記(2004-09-12) 最新 次の日記(2004-09-14)» 編集

ヨタの日々

2001|08|09|10|11|12|
2002|01|02|03|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|12|
2024|01|02|03|04|

2004-09-13

_

0640 起床。

だる。

風呂。

_ 出勤

新チャリ。

_ Microsoft WindowsXP SP2

会社計算機。入れた。

 OS 名  Microsoft Windows XP Professional
 バージョン  5.1.2600 Service Pack 2 ビルド 2600

_

肉と温野菜のっけもり。なすの味噌炒め。

指を火傷した。2 箇所。

p9130001.jpg

_ UNIX という考え方

読み終わり。

概要

UNIX 的考え方は以下の 9 点。

  1. スモール イズ ビューティフル( small is beautiful )
  2. 一つのプログラムには一つのことをうまくやらせる
  3. できるだけ早く試作する
  4. 効率より移植性を優先する
  5. 数値データは ASCII フラットファイルに保存する
  6. ソフトウェアをテコとして使う
  7. シェルスクリプトによってテコの効果と移植性を高める
  8. 過度の対話的インターフェースを避ける
  9. すべてのプログラムをフィルタとして設計する

これらについて章をもうけて解説している。

全体的には最初の「 small is beautiful ( 小さいことは美しい )」ということをアピールしている。

UNIX のコマンド然り、ユーザが書くプログラム然り、カーネル然り。

プログラムひとつひとつを小さくしておけば、上記のほとんどをカバーできる。というか上記はお互いが関連している。

などということは UNIX 的 OS な世界で暮らしている方々には馴染みがあると思う。

small is beautiful

私は仕事では Microsoft Windows で暮らしているのだけど、それでも UNIX な考え方は適用できる。

もっぱらウィンドウプログラムを書いているので、UNIX のようにひとつひとつのコマンドをパイプでつなげて実行なんてことはできない。

でもウィンドウプログラムであっても中ではモジュール分割したり、ウィンドウ以外のところでは別プロセス/スレッドにしたりして処理を分割する。プロセス間通信には Windows のメッセージを使ったり、パイプを使ったり、ActiveX を作ったりする( ActiveX はもう 2 度と使いたくないが )。

プログラムを小さく作るというのはようするに「 分割して統治 」の考えである。

オペレーティングシステムを小さくする

上記のような「 これが UNIX の考え方 」ではなく、「 どちらかというと UNIX な考え方だな 」というもの。

実行速度をもっと高めるために X サーバをカーネルに組み込むか、それとも移植性を重視して( 従来どおり )ユーザ空間に置いておくかという議論があったそうなのだけど、以下の文が笑った。

結局、両陣営の意見の対立は、どう収束したのだろうか? これにはシステム自身が答えを出した。X サーバをカーネルに組み込む試みは一見成功したかのようだったが、テスターが恐るべきことを発見した。
X サーバにバグがあると、ウィンドウシステム全体がクラッシュするだけではなく、オペレーティングシステム全体がクラッシュすることが分かったのだ。

できるだけ早く試作する

とりあえず必要な機能だけを持たせたプログラムをサクっと書いてサクっとリリースするという文化。

これも UNIX に限らずいろいろと適用できる。

こんな例文。

「 そろそろ出荷する時期だ 」 ボスは宣言した。
「 し、しかし、まだ終わっていません。あと、2、3 日ください。そうすれば....」
「 ソフトウェア開発に終わりはない。あるのはリリースだけだ 」

ユーザは形あるものを望んでいる。とにかく形になったプログラムを動かして、実際に見てみたいと望んでいる。

最小限の機能を持たせたプログラムであってもとにかくリリースするという姿勢は大事。もちろんそれなりに要求仕様にあった機能を持たせたプログラムである必要はあるけど。

はやめのリリース。とにかくリリース。

熊とワルツを でも「 プログラムをこまめにリリースすることによってリスクを低くする 」と書いてあった( あまり覚えてない )。

_ The History of Programming Languages

( via inside out )

すべての元祖は Fortran なのか。

Basic の歴史がかなり古いことに驚き。

_ それはそれ

これはこれ?