n9d いる?

[n9d] いる?
[n9d] http://practical-scheme.net/wiliki/wiliki2.cgi?Scheme%3a%a5%de%a5%af%a5%ed%a4%ce%b4%ed%b8%b1
[n9d] の
(n9d) (define-macro (make-foo x y) `(cons ,x ,y))
(n9d) (define-macro (foo-x foo) `(car ,foo))
(n9d) (define-macro (foo-y foo) `(cdr ,foo))
[n9d] なんだけど
[n9d] `はシンボルだったよな?
[n9d] すっかり忘れてる
[n9d] ,x はどういう意味だ?
[n9d] あと、 この辺読んでて思ったことなんだけど
[n9d] なんか、全てリストで処理するって 可読性の観点ではまずそうだな。。
[n9d] まあ、プログラムを関数の群として捕らえるならば
[n9d] 一旦作ったプログラムは二度と修正しないという観点では良いのかもしれない。
[n9d] 修正に対する考察と リスト(汎用データタイプ)の操作でプログラムする は関係が深いのかも
[n9d] うーん。
[n9d] 汎用と専門 という ツールとしての性質か。
[n9d] 汎用=作った人以外の誰かが利用することである と定義すると
[n9d] 汎用=環境 と捕らえることができるな。
[n9d] コンピュータもそういう意味では道具か。
[n9d] 道具の中に道具が入れ子になっている状況になってるのか。
[n9d] そうか、コンピュータという道具の限界値は紙になっているものと境界線がある。
[n9d] 情報の媒体として紙とコンピュータには障壁があるのか。
[n9d] まあ、その議論はおいておいて
[n9d] 汎用をどこまで意識するかがプログラミングであるとかんがえると
[n9d] ちがうな、 環境が定義する操作可能な単位のどこまでを新たな道具として定義することがプログラムか。
[n9d] 環境ができることの部分集合がツールか。
[n9d] 真部分集合をできるようにするためには環境自身と同じ大きさになるので言語自身の操作が必要になる。
[n9d] なるほど!
[n9d] 環境を切り取るための一つの手法が言語であると捕らえればいいのか。
[n9d] とすると 言語によって作られたツールによってのみ新しい環境をつくるとすると これは別次元の環境と言うことになる
[n9d] 例:apachehttpd.conf
[n9d] なんか、理論化できそうな気がするんだけど。
[n9d] RESTもそういう意味では 環境なんだな。
[n9d] リソースに対する権限については考察してないが。
[n9d] 言語によって作られたツール群でのみ目的を達成しようとするとできないことが現れる。
[n9d] できないこと=環境による制限(時間軸ではいま)・将来における拡張(時間軸では未来)
[n9d] できないことに対する拡張の手法をどのように定義するか
[n9d] 拡張を予測することをあきらめると マクロ等の新しい言語が必要になるな
[n9d] 言語は手段に対するツールであるともいえるな
[n9d] 何行ってるかわからんな
[n9d] いくら単機能ツールを作ったとしても 繰り返しや条件等の手続きを ツール化することができるかどうか
[n9d] そうやって言語が作られたな!
[n9d] そっか!
[n9d] 最初は ワイヤードロジック
[n9d] 面倒だから マイクロプログラミング
[n9d] で、それを更に面倒だから 高級言語
[n9d] で、面倒だからOS化
[n9d] で、それの上でツール群の生成 ls cat
[n9d] で それらの組み合わせで sh
[n9d] 環境(言語)の上に環境(言語)をつくって更にその先に・・・・
[n9d] 言語は本質じゃねえな。
[n9d] 問題なのは 操作者に対し、当該操作者が自由に意志を伝えられる環境を構築することだ。
[n9d] そういう意味では 紙というメディアはすばらしいんだ 操作者を選ばないから(とはいっても筆記の方法はおぼえなくてはならない)
[n9d] あと、媒体に自律性がない。
[n9d] コンピュータが難しいのは 伝送した後に コンピュータ自身が情報を自己演算することか。
[n9d] 自己演算に対する操作者の幻想がまずいんだな。
[n9d] 自己演算もしくは 操作者が環境(媒体)に対して行った挙動に対する定義を理解できるよう記述する言語が要求されているのか。
[n9d] マウスの操作もそういう意味では言語だしな。
[n9d] あ”〓
[n9d] 言語と情報が入り交じっているというか 操作と情報が入り交じってるのが問題?
[n9d] なんか、ノイマンの呪いか(笑
[n9d] そうか、紙媒体だと 情報しか入ってないのだが、 コンピュータだと 情報と操作が入っている。
[n9d] 作成者側の都合だと 情報と操作を同時にやりたくなるのだが
[n9d] 情報の再利用の観点だと 情報だけが独自に存在している方がメリットがある。
[n9d] 操作の主体に対するというか誰がコントロールするのかというのが見えにくいんだ。
[n9d] 逆に見える状況だと作成者側に対する負荷が多い。
[n9d] なんだ、そういう意味では コンピュータプログラマが世界を支配する 「Oh! My Computer」 ってかつてのSFもあながち間違いではないんだな。
[n9d] 制御できない状況なのが現代なだけか。
[n9d] 多数の環境が切磋琢磨している現代において 交換できるものは情報だけ。
[n9d] 環境同士は競争しあってるんだからそう簡単に情報を交換するものか。
[karo] うお、すごいな
[karo] なんかここまでの力作だと、チャットに書いてあるのがもったいない気がしてくるな
[karo] もはや、この論文の内容に比べたら大したことない話だけど、lispの`と,の使い方は、rubyの”と#{}と同じようなもんだ
[n9d] うーん
[karo] `(cons ,x ,y)は、rubyでいうと、"cons #{x} #{y}"という感じ
[n9d] あ、なるほど。理解した。
[n9d] 結論になってるかはわからないけど
[n9d]  言語とツールに境界線があってはならないってきがしてきた。
[n9d]  shで言えば | は .collect{} って気がするし
[n9d] その気になれば環境を全て使えるってのが重要なんだな。
[n9d] でもって 最初に学習するためには ls と cat しってれば十分みたいな 初期学習が容易
[n9d] その気になったら shプログラム
[n9d] shはよく考えてある。
[n9d] ネットワーク系では「まだそのような環境がない」 ってのが正解か。
[n9d] もしくは ど素人(=操作者)に対する 環境全てに対するコントロールするための手法が一般的に提供されていない。
[n9d] って、 HTTPしゃべれるようになれば十分か。
[n9d] って、HTTPのPUT DELETE使ってないから 意味無し。
[n9d] おしい、ここで PUT DELETE使うための 認証をきちんと定義していれば十分だったのか。
[n9d] あー、そうかー
[n9d]  計算機側にどう挙動させるかの言語が定義されてないのか。
[n9d]  それがスタイルだったはずか、
[n9d]  情報をどう加工するかを指示する言語
[n9d]  認証も ネットワークに対しか計算機に対しかで変化するはずだし。
[n9d] 言語の観点では スタイルを複数適用するための方法が定義されていない。
[n9d]  複数= a | b | c とか 繰り返しとか。
[n9d]  過去に作った スタイル=ツール(操作に対する塊) を再利用する って観点についてもう少し考察が必要か。
[n9d] 再利用ってなんだ?
[n9d] 再利用するツールに対する説明責任は誰にある?
[n9d] 情報は再利用する際に それが見てわかる範囲に記述されていれば十分(=再利用可能)なはずなのだが
[n9d] 操作の再利用ってなんだ?
[n9d] 操作と使い方はワンセット?
[n9d] だから debianはマニュアルが必須なのか?
[n9d] 古からマニュアルがあったにもかかわらず、全ての人がマシン語でプログラムしていないのは何故?
[n9d] そこは冗長性があるからか。
[n9d] 冗長性が無くなればいいのか。
[n9d] 冗長性って 同じ事を2度書かない ってことか?
[n9d] んじゃ、何でもやってくれる道具が一つあれば それに頼めばいいのか?
[n9d] って、道具を どのように操作するか っての道具に頼まなきゃいけない。
[n9d] 頼み方=言語
[n9d] 言語は道具じゃねえんだな。
[n9d] 言語の奥にある環境(=道具)をどのように使うかという頼み方なんだな。
[n9d] 少なくとも コンピュータがどのような道具かが定義されていれば 最適な言語は定義可能だ。
[n9d] って、そこの定義ができてるなら すでに言語も新しくなってねえな。
[n9d] コンピュータにできることが変化し続けているだけか。
[n9d] やっぱ、「何をさせるか」が重要であって ここからどのように環境を定義するかが計算機屋っての腕の見せ所ってことか。
[n9d] そういう意味では 科学技術計算のライブラリが未だにフォートランなのも理解できる。
[n9d] 一般的な使われ方では 必殺な道具がまだ提供されていないんだな。
[n9d] 目的が汎用すぎるのかもしれない。
[n9d] そうか、ネットでは「他者とのコミュニケーション」って莫大な目的だもんな。
[n9d] 限定してツールを作っていけば良いんだけど、そうはなってないと
[n9d] コミュニケーションするのに 文だけで十分だったり 絵とかがばりばり動いたり
[n9d] 単目的に 道具が考察されていないだけだ。
[n9d] そういう観点では「道具は物事をなすための単なるライブラリ」か。
[n9d] http://dictionary.goo.ne.jp/search.php?MT=library&kind=ej
[n9d] によると
[n9d] 単に 図書とか書庫って意味のはずなのに・・・
[n9d] どうして コンピュータを挙動させるための命令書群 になってるんだろう・・・
[n9d] 実際には 命令群のはずか。
[n9d] 組み合わせに対する考察がもっと必要って事か。
[n9d] つかれた。終了。
[n9d] 加工が面倒なのでkaroのページにでも貼り付けておいてくれ。
[n9d] ひょっとすると スタイルシートつまり操作群の適用が一つしかできないというのは 再利用のための重要な制限として機能するのかもしれない。
[n9d] =計算機資源の消費に対する予測
[n9d] 資源消費に対する予測を利用者側が持ってないと良い道具使いにはなれないな。
[n9d] スタイルの組み合わせは スタイル作成者に責任がある。
[n9d] あー
[n9d] スタイル中でスタイルよべるな。
[n9d] なるほど、やはり、スタイルの挙動の説明責任はツールの作成者側にあるという理論があるな。
[n9d] ということは 本来はスタイル(=操作)の適用方法と記述方法が 初心者が取っつきやすく その気になれば何でもできるってのが言語の要件なのか。
[n9d] 情報の引き出し方が コンピュータと人間にとって差異が無く 操作の適用方法と記述方法が 初心者が取っつきやすく その気になれば何でもできるってのが環境の要件なのか。
[n9d] 利用者はコンピュータはここまでしかできないってのを把握する必要がある それが真なるコンピュータだ。
[n9d] で、お金を出せばこれ以上できるってのをリニアに説明するのか。
[n9d] まぁ、サービスと同じでバカな利用者に全部わかると商売にならないと(大笑
[n9d] サービスのリスクと儲けがサービスの金額を決めてるのと同じで
[n9d] コンピュータができることがわかっている人が限定されている方が限定されている人は儲けやすい。
[n9d] なーんだ、つまんね。
[n9d] わかったぞ
[n9d] どこまでが ハード(=環境)で どこまでがソフトなのか定義されていないだけだ。
[n9d] 結局 人間が作業を分担する際の理屈が体系化されていないことが全ての原因か。
[n9d] 人間の作業可能量が一人ずつで違うように万能な方法はないな。
[n9d] 「厳選された(=教育を受けた)且つ少ない(=協調可能な)人間」でやるのが最もつよいと
[n9d] 計算機分野で 多人数でメリットがある作業ってなんだ?
[n9d] 作業者が人間ってどんな作業だ。
[n9d] わからん、それがプログラマなのが現在か。
[n9d] 単目的に部品を切っていった方がはええな。
[n9d] おわりおわり。
[n9d] 俺の脳じゃタリン