具志ブログ(β版)

ピキーン!ときたフレーズや画像、動画なんかを俺のフィルタを通して紹介

38.すべてのプログラムをフィルタにする

スポンサーリンク

すべてのプログラムをフィルタにする

最後の定理は、抽象度が高くなるので、ちょっと難しいかもしれない。

でも、これの意味しているところを理解すると、大げさじゃなく、世界が変わって見えると思うのですよ。

フィルタって?

「フィルタ」と聞いて思い出すのは、コーヒーのフィルタとか、フィルタを通して見る、なんかじゃない?

コーヒーの時も、見るの時も、何かを「通す」のがフィルタ。

ただそのまま通すんじゃなくて、通す前と後では、状態が変化している。

コーヒーのフィルタは、上からお湯を注ぐと、カフェインを含んだ茶色の液体になってドリップされる。

フィルタを通して見ると、いろんな変化が想像できるだろうけど、ありがちなのは、色が変わって見えたり。

こんな働きをするのが「フィルタ」です。

じゃ、プログラムにおけるフィルタって何を通す?どう変化する?

データのこと

通すのは「データ」で、どう変化させるかっていうと、プログラムされた通りに変化させる。

データってのは、文字や数字の場合もあるし、音声とかかもしれない。

また、体にセンサーをつけて動き回ると、移動データも収集できる。

で、そういったデータをプログラムに通して、何かに変化させる。

音声データを入れて、綺麗なサイケデリック模様を作り出すVJプログラムもあるし、同じ音声データから、声の波形を変化させてモンスターの叫んでいるように聞こえるように変化させることもできる。

体につけたセンサーを入力として、動きのデータを、都会で暴れまわるゴジラに変化させることもできる。

基本的に、すべてのプログラムは「フィルタ」である、ということ。

じゃ、なんでわざわざ、こんなのを定理に?

「フィルタ」として捉えて、入り口と出口をキチンと意識しよう、ってこと。

UNIXにおけるプログラムの入り口としてstdin(standard inputの略)と出口としてstdout(standard output)ってのが、その名の通り、標準として定義されてる。

つまり、この標準に従えば、利用者からのデータ入出力や、プログラム同士でのデータのやり取りが簡単に行われるという仕組み。

データが入ってきて、加工されて、加工済みデータとして出ていく。

加工済みデータを、また別のプログラムが入り口から受け取り、さらに加工が施されて、出て行く。

さらにまた、それを受け取って、、、と、どれだけ続くかはわからないけれど。

このやり取りの柔軟性を保つために、標準化しときましょうね。

そんなことがUNIXの方針として標準化されてますよ、これを使うことでキチンとフィルタとして作ることができますよ、という定理です。

フィルタとして意識することでどうなるの?

メリットは以下の引用の通り。

プログラムに何ができるかという内向きのことばかり考えず、プログラムがどういう場所に入り込めそうかを考えてほしい。そうすれば、プログラムを一部とする大きな全体が見えてくる。

つまり、高い視点を得ることが可能になり、それによって、さらに効率的なプログラムを作ることができる、ということ。

人間でさえも、標準入力にデータを渡すプログラムとして見ることも可能になる!

人間に当てはめると?

さて、これ、人間がそのまま「フィルタ」である、ということに気付けると思います。

五感からのデータ入力とその加工、そして出力。

周囲にいる人は、その出力を受け取って、またその人なりのデータ処理、そして出力。

で、その隣の人は、、、というように。

たまたま、その出力先がキーボードだったりすると、データがプログラムに渡されて、別の形に変化するってことになるのだけど、それはそれで置いといて。

この定理で「プログラム」を「人間」に置き換えると、「すべての人間をフィルタにする」となります。

そして、その視点を得ると、人間同士がデータをやり取りして形作る大きな全体が見えてきます。

例えば、愛情というデータをやり取りする「家庭」という全体かもしれないし、お金、仕事というデータをやり取りする「会社」という全体かもしれない。

その上の全体だと、「都市」や「国家」なども見えてくる。

もっともっと視点を高くするのなら、地球を超えて、宇宙を超えて、それらが「フィルタ」であると捉えるのであれば、もっと上の「全体」があるのではないか?

知識と想像力の分だけそれは高くなるのだろうけど、あまり高すぎてもわけがわからなくなるので、ほどほどにしておいて。

逆に、UNIXという環境を小宇宙としてみたときに、プログラム一つ一つが人間のように思えてきます。

そう、TRONやマトリックスという映画では、プログラムを人として描いていました。

アレです。


映画『トロン:レガシー』予告編

トロン:オリジナル×レガシー ブルーレイ・セット (期間限定) [Blu-ray]

トロン:オリジナル×レガシー ブルーレイ・セット (期間限定) [Blu-ray]

そういえば、貞子もだっけ?

人として高い視点を持つこと

高い視点を持つことで、自分の成すべきことを理解できたり、そして怠けそうな心に新たな刺激を与えることができます。

UNIXの哲学を生活に取り入れると、自己研鑽が自然と行われることになる、というのが結論です。

長々と一冊の本を紹介したんだけど、興味を持ってもらえたら嬉しいなぁ。

俺も、こんなに長くなるとは思わなかった。

次は、もう少しシンプルにしたいけど、うーむ、どうしても深読みしたのを紹介したくなるんで、仕方ない。

あきらめて。

まだまだ、面白い本あるから、紹介するね。

じゃ。