コマンド
〜世界で一番小さな物語〜
Corporation, Okinawa JAPAN
CLI教
宮里 忍
2010年08月06日
はじめコマンドで出来ない事を探そうとした。
コマンドで出来ない事なんて無い事に気がついた。
by CLI教の教祖様
プログラムってなに?
- プログラムは状態を変えるもの
- 世界は0と1の状態しか取らない
- 0と1は構造化定理で操作される(順次・反復・分岐)
- 構造化定理でプログラムを構成する
- 複数のプログラムが協力して目的を達成する
世界の最小単位(0と1)は構造化定理に支配されるが、
目的を達成するための最小単位は別にあるはずである。
by CLI教の教祖様
複数のプログラムが協力して目的を達成する
つまり
目的は複数のプログラムで達成される
じゃあ
プログラムの粒度はどうあるべき?
1つのプログラムが1つの目的を達成
1つの目的しか達成できないプログラム
再利用できないプログラム
そんなもの、、、
いらない
いろんな目的達成に使えるプログラム
それは
目的を噛み砕いて、命令にまで落とし込んだ
それは
世界で一番小さな物語
それは
そう
コマンドに他ならない
コマンドとは
- 例えば「cat」
- ファイルの内容を表示するだけ
- ファイルの内容を表示するエキスパート
- 実にバカであり、単純である
- 単純だからこそ、いろんな目的に使える!
- つまり、、、
プログラムよバカであれ!
バカなプログラム=コマンド
バカなコマンドはいろんな目的に使える
バカなコマンドを組み合わせれば目的を達成できる
プログラミングとはバカなコマンドを組み合わせること
プログラミングとは存在しないバカなコマンドを作ること
コマンドを組み合わせるのは
パイプ
それと
shスクリプト
世界で一番小さな物語は
パイプとshスクリプトで
世界を語る
DNSゾーンファイル変換
正引き
gamma.co.jp. IN A 10.255.0.3
omega.co.jp. IN A 10.255.0.4
vega3.co.jp. IN A 10.255.0.5
逆引き
3.0.255.10.in-addr.arpa. IN PTR gamma.co.jp.
4.0.255.10.in-addr.arpa. IN PTR omega.co.jp.
5.0.255.10.in-addr.arpa. IN PTR vega3.co.jp.
rev.pl があなたの財産
まとめ
- 単純でバカなプログラムを量産しよう
- 存在しないコマンドを作ろう
- コマンドというプログラムの最小単位を意識しよう
本内容の応用分野
- ドメイン特化言語(DSL : Domain Specific Language)
- クラウド
- 世界
- 神