メッセージ。 - diary
2007-09-23
# 生存確認
生存確認。
http://sandbooks.net/index.cgi?StoreRoom%2f2007%2f09#ID20A
これさぁ、どこかにブログサービスを借りて、そこで近況報告なり仕事の進捗報告なりをしていったらどうかなぁ?
というのも、うちの実家に最近パソコンを買って置いてきてさ。「このご時世、パソコンがあったほうが便利だから」と。
でもそれをしたおかげで、親からたまにメールが来るようになっちゃったのですよ。いわく、「誰からもメール来ない」と。
えー? ですよ。えー?。メールっつったって、用事ないと書けないしさぁ。それで、まぁなんつーか、そういうことのために、そもそもブログとかってあったんじゃないかな?と思ったわけ。
ブログってのは、プル型のメルマガという意味合いもあるんじゃないかな、と。だって、メルマガって読まなくなっちゃうじゃん? 定型文でしかも、向こうから頻繁に来るところのはとくに読まない。
メルマガのそういう部分を、改善したものが、ブログなのかもしれないなーと。そういう意味では、mixiなんかもそれに非常に近い。とくに用事がないけど、discloseしたい情報があるとか、そういう感じ。あ、今だったらtwitterとかいいんじゃないの?
えーと、なんだっけ? まぁそんな感じで。http://test.sandbooks.net/last.php のページが面白かったです。
http://sandbooks.net/index.cgi?StoreRoom%2f2007%2f09#ID20A
これさぁ、どこかにブログサービスを借りて、そこで近況報告なり仕事の進捗報告なりをしていったらどうかなぁ?
というのも、うちの実家に最近パソコンを買って置いてきてさ。「このご時世、パソコンがあったほうが便利だから」と。
でもそれをしたおかげで、親からたまにメールが来るようになっちゃったのですよ。いわく、「誰からもメール来ない」と。
えー? ですよ。えー?。メールっつったって、用事ないと書けないしさぁ。それで、まぁなんつーか、そういうことのために、そもそもブログとかってあったんじゃないかな?と思ったわけ。
ブログってのは、プル型のメルマガという意味合いもあるんじゃないかな、と。だって、メルマガって読まなくなっちゃうじゃん? 定型文でしかも、向こうから頻繁に来るところのはとくに読まない。
メルマガのそういう部分を、改善したものが、ブログなのかもしれないなーと。そういう意味では、mixiなんかもそれに非常に近い。とくに用事がないけど、discloseしたい情報があるとか、そういう感じ。あ、今だったらtwitterとかいいんじゃないの?
えーと、なんだっけ? まぁそんな感じで。http://test.sandbooks.net/last.php のページが面白かったです。
2007-09-17
# 「漏れのある抽象化の法則」の話の続き(まとめ?)
Shiro
http://practical-scheme.net/wiliki/wiliki.cgi?Shiro
(2007/09/14 18:40:15 PDT 収束)
とりあえず一段落ですかね。よいまとめになっていると思います。
http://practical-scheme.net/wiliki/wiliki.cgi?Shiro
(2007/09/14 18:40:15 PDT 収束)
とりあえず一段落ですかね。よいまとめになっていると思います。
2007-09-15
# もうちょい追記。ほとんど妄想と言いがかり
この議論はもう収束に向かってるんだろうけど、自分の中でひっかかるのでメモ。
Shiro
http://practical-scheme.net/wiliki/wiliki.cgi?Shiro
「それぞれの抽象化には、たしかに違いがあって、個々の抽象化のあいだでその能力(壁の厚み)には差がある。また、プログラミングにおいてはデジタル回路の抽象化の壁が、その下層とへだてる能力は非常に高く、抽象化が漏れるリスクは相対的にとても小さく抑えられている」という知見は、とても重要だと思う。Joelさんによる「漏れのある抽象化の法則」がホップだとすれば、shiroさんによる指摘はステップに足りるかもしれない。
----
ただ、shiroさんの考えは高度すぎる。「漏れのある抽象化の法則」をしっかり理解しているからこそ、これだけの飛躍ができているはず。一方で、「漏れのある抽象化の法則」は、まだ世の中に(業界の中にさえ)浸透していない。せいぜい多くてプログラマ人口のうち10%ぐらいしか、ちゃんと理解していないと想像する。Googleで検索しても552件しかない。→ 漏れのある抽象化の法則 - Google 検索
この状況で、今回のプレイヤーたちが、それだけ高度な理論を共有できているのかなぁ? ぼくは、shi3zさんの能力を非常に高いと思ってるけど、でもこれだけの理論の鐘楼を、暗黙のうちに共有できてるんだろうか。そうは思えない。あと、このレベルを要求するのなら、「プロ」と呼べる人は業界の中で1割もいないように思う。逆に、技術力は高くてもそのほかが付いていかない人とかはどうなんだろう? プロと呼べるんだろうか。
----
shiroさんが言うように、たしかにデジタル回路はうまく電子の海や量子の世界を抽象化していて、厚い抽象化の壁は下位層である電子や量子の世界からの漏れを許さない。でも本当に、デジタル回路の抽象化能力はそんなに「高い」のだろうか。
ぼくは理想的な計算は数学に非常に似たものになるだろうと思っているけど、現代の計算機はほとんど数学に似ていない。計算機におけるマシン語というプリミティブは、優秀な抽象化レイヤとは言えないかもしれないと考えてみよう。
現代のデジタル回路やマシン語というものは、計算を行うにはあまりにも貧弱と言えないだろうか。電子回路では、8ビットなどにアラインメントされたワード単位でしか計算できず、マシン語の「設計」は、ハードウェアの制約との辻褄合わせがほとんどだ(たぶん。よく知らないけど)。
「計算」を行う機械としての電子回路は、抽象化が漏れまくっていて、プログラマはいつもハードウェアのことを意識しながら計算式を設計しなければいけない。これって間違ってないか?
----
バネでもランプでも論理回路は実現できるだろう。しかしそれで、現代の処理能力を持つ計算機を作ることはほとんど不可能だ。機械式の計算機でも論理回路を形成することはできる。でも、機械式ではロスが大きすぎて全然使いものにならなかった。その後、技術が発達して機械式から電子式に切り替わったことで、論理回路というのは抽象化の漏れをふさぎ、使いものになるレベルに達した。
つまり、論理回路の抽象化漏れをふさぎ、それを使いものにしたのはシリコン技術なのではないか。論理回路自体が抽象化の漏れをふさいだのではないという考え方。物性技術の進歩が抽象化の漏れをふさいだのだと。
----
なんとなくだけど、高級言語は今後もしばらくは満足な抽象化を提供しないと思う。たぶん、それをなしとげるのもまた物性技術の進歩だ。現代のような非常に短いワード単位でしか計算できないプアな計算機では、数学のような計算にまでスケールしないように思われる。量子コンピュータが実現したら、またパラダイムが変わるのではないかと思うのだけど。
Shiro
http://practical-scheme.net/wiliki/wiliki.cgi?Shiro
私は高周波回路も量子力学も苦手だったし、数百MHzのバスクロックに乗るパルスの波形や数GHzのチップクロックの中を走る電子の雲がどうなってるかなんて考えたくも無いんだけれど、それらがデジタル回路の抽象化の壁を越えてくる確率と「高級言語」で書かれたプログラムのSEGVに出会う確率にはあまりに大きな差がある。
「それぞれの抽象化には、たしかに違いがあって、個々の抽象化のあいだでその能力(壁の厚み)には差がある。また、プログラミングにおいてはデジタル回路の抽象化の壁が、その下層とへだてる能力は非常に高く、抽象化が漏れるリスクは相対的にとても小さく抑えられている」という知見は、とても重要だと思う。Joelさんによる「漏れのある抽象化の法則」がホップだとすれば、shiroさんによる指摘はステップに足りるかもしれない。
----
ただ、shiroさんの考えは高度すぎる。「漏れのある抽象化の法則」をしっかり理解しているからこそ、これだけの飛躍ができているはず。一方で、「漏れのある抽象化の法則」は、まだ世の中に(業界の中にさえ)浸透していない。せいぜい多くてプログラマ人口のうち10%ぐらいしか、ちゃんと理解していないと想像する。Googleで検索しても552件しかない。→ 漏れのある抽象化の法則 - Google 検索
この状況で、今回のプレイヤーたちが、それだけ高度な理論を共有できているのかなぁ? ぼくは、shi3zさんの能力を非常に高いと思ってるけど、でもこれだけの理論の鐘楼を、暗黙のうちに共有できてるんだろうか。そうは思えない。あと、このレベルを要求するのなら、「プロ」と呼べる人は業界の中で1割もいないように思う。逆に、技術力は高くてもそのほかが付いていかない人とかはどうなんだろう? プロと呼べるんだろうか。
----
shiroさんが言うように、たしかにデジタル回路はうまく電子の海や量子の世界を抽象化していて、厚い抽象化の壁は下位層である電子や量子の世界からの漏れを許さない。でも本当に、デジタル回路の抽象化能力はそんなに「高い」のだろうか。
ぼくは理想的な計算は数学に非常に似たものになるだろうと思っているけど、現代の計算機はほとんど数学に似ていない。計算機におけるマシン語というプリミティブは、優秀な抽象化レイヤとは言えないかもしれないと考えてみよう。
現代のデジタル回路やマシン語というものは、計算を行うにはあまりにも貧弱と言えないだろうか。電子回路では、8ビットなどにアラインメントされたワード単位でしか計算できず、マシン語の「設計」は、ハードウェアの制約との辻褄合わせがほとんどだ(たぶん。よく知らないけど)。
「計算」を行う機械としての電子回路は、抽象化が漏れまくっていて、プログラマはいつもハードウェアのことを意識しながら計算式を設計しなければいけない。これって間違ってないか?
----
バネでもランプでも論理回路は実現できるだろう。しかしそれで、現代の処理能力を持つ計算機を作ることはほとんど不可能だ。機械式の計算機でも論理回路を形成することはできる。でも、機械式ではロスが大きすぎて全然使いものにならなかった。その後、技術が発達して機械式から電子式に切り替わったことで、論理回路というのは抽象化の漏れをふさぎ、使いものになるレベルに達した。
つまり、論理回路の抽象化漏れをふさぎ、それを使いものにしたのはシリコン技術なのではないか。論理回路自体が抽象化の漏れをふさいだのではないという考え方。物性技術の進歩が抽象化の漏れをふさいだのだと。
----
なんとなくだけど、高級言語は今後もしばらくは満足な抽象化を提供しないと思う。たぶん、それをなしとげるのもまた物性技術の進歩だ。現代のような非常に短いワード単位でしか計算できないプアな計算機では、数学のような計算にまでスケールしないように思われる。量子コンピュータが実現したら、またパラダイムが変わるのではないかと思うのだけど。
2007-09-14
# 「漏れのある抽象化の法則」追記
ちょっと追記してしまう。
ぼくは、「漏れのある抽象化の法則」には一定の価値があると思ってる。でも、だからといって「○○を知らなければ△△を知ったことにはならない」という考え方が良いとは思わない。むしろ嫌いだ。
だって、「○○を知らなければ」という考え方は、キリがないんだもの。アセンプリ言語を知らなければと言いはじめると、いや電子回路が先だとか、量子論のほうがもっととか、数学を理解しないととか、どんどんどんどん深追いすることになって、しかも終わりがない。
俯瞰して見てみよう。それぞれ皆が、自分の得意なものを持ち上げて「○○を知らなければ△△を知ったことにはならない」と言っている。まるで水辺で、お腹を膨らませて競争をしているカエルだ。
だからもう、競争はコリゴリだ。コリゴリなんだ。やめてくれ。
ただ、「漏れのある抽象化の法則」には一定の価値があると思うのだ。それは、ある道具やある知識を使っているとき、それがどういう原理で動いていて、なぜなのかを考えたりするのは、役に立ったり、面白い発見があったりするよということだ※。それだけで十分だ。
※ あと、もう1つあった。下へ下へと原理を追いかけてもキリがないのと同様に、どれだけ高度な抽象化レイヤを作っても、下のレイヤの影響をゼロにすることはできないということだ。
ぼくは、「漏れのある抽象化の法則」には一定の価値があると思ってる。でも、だからといって「○○を知らなければ△△を知ったことにはならない」という考え方が良いとは思わない。むしろ嫌いだ。
だって、「○○を知らなければ」という考え方は、キリがないんだもの。アセンプリ言語を知らなければと言いはじめると、いや電子回路が先だとか、量子論のほうがもっととか、数学を理解しないととか、どんどんどんどん深追いすることになって、しかも終わりがない。
俯瞰して見てみよう。それぞれ皆が、自分の得意なものを持ち上げて「○○を知らなければ△△を知ったことにはならない」と言っている。まるで水辺で、お腹を膨らませて競争をしているカエルだ。
だからもう、競争はコリゴリだ。コリゴリなんだ。やめてくれ。
ただ、「漏れのある抽象化の法則」には一定の価値があると思うのだ。それは、ある道具やある知識を使っているとき、それがどういう原理で動いていて、なぜなのかを考えたりするのは、役に立ったり、面白い発見があったりするよということだ※。それだけで十分だ。
※ あと、もう1つあった。下へ下へと原理を追いかけてもキリがないのと同様に、どれだけ高度な抽象化レイヤを作っても、下のレイヤの影響をゼロにすることはできないということだ。
# 「漏れのある抽象化の法則」、嫌いなこと、好きなこと
「アルゴリズムを知らない子ども達」の補足(?) - val it : α → α = fun
http://www.jmuk.org/diary/2007/09/13/0
一連の話を見てて思うのだけど、結局は「漏れのある抽象化の法則」(参照:Joel on Software)なんだよなぁ。「漏れのある抽象化の法則」という概念は、もっと世の中に知られていてよいと思う。それも「たぶんそれは正しい考え方だ」として。漏れのある抽象化の法則は、「銀の弾丸」に近い正しさを持っていると思うんだけどなぁ。
ただ、「漏れのある抽象化の法則」は分かりにくいとも思う。まず名前が分かりにくいし、「Joel on Software」を引用しても、どうもうまく説明できている感じがしないときがある。「分かる人には分かる」という感じが強い。なんかもうちょっと、生活に近いレベルで「漏れのある抽象化の法則」と同じことを説明している言葉や例ってないですかね?
あと、今回のような議論で紛糾しているのは、結局のところはここだと思う。
ここは、次のように(解釈なり表現なり、表現されていると考えるなり)したほうがいいんでないかな(shiroさんの言葉だけでなく、shi3zさんの言葉についても同様に)。
自分が好きな人には、「こうなってほしい。こう考えたほうがよいと理解してほしい」というのなら分かる。でも、自分が好きでもなんでもない相手にまで、自分の理想を理解してもらったり使ってもらったりする必要はない。これ、皮肉でもなんでもなくて、素直に、「そう考えたほうが、言っているほうも言葉を受けるほうも幸せだ」と思ってる。
だって、好きでもなんでもない人が、どのようになろうが関係ないじゃん。好きでもなんでもない人に対して「このようにあるべき。こうしろ」なんていわなければいけない、言いあわなければいけない世界は不幸だ。それぞれの人間は、それぞれの生き方を十分自由に選んでいい。絶対普遍的に「○○すべき」なんていえるような、明確なアフォリズムは存在しないのだから。(ヒント:どんなに優れた「○○すべき」も、抽象化が漏れる。そのとき「○○すべき」と言った人は責任取れますか? 取りたいですか?)
あと、もう書いてるけど、このように解釈するテクニックは、読み手のほうも持っていてほしいなぁと思う。つまり、「○○すべき」という言葉をどこかで見つけたら、こう考えてはどうかな? 「ああこの人は、自分の好きな相手(恋人とか友達とか家族とか)に向けて言ってるんだな。でも自分は彼の恋人でも友達でも家族でもないし、彼のことをそれほど好きなわけではない。だからその言葉を、自分の中に採用する必要はない」。
いいかい? ぼくはこう思う。自分の好きでもなんでもない人や何かが、何を言ってようが何をしてようが、関係ない。本当に、それは自分には(あなたには)関係がない。だから、何か気に入らない言葉や事物を見つけたとき、それがあなたの好きな人によって発せられたのでないなら、それを受け容れる必要もないし、ましてやそれに反発する必要もない。なぜか。
時間の無駄だから。そして大事なのは(あなたの(ぼくの))時間だ。気に入らないものを見つけたとき、それをやっつけて掃除することが価値になるケースもあるだろう。でも、実は世の中には、あなたの気に入らないものや嫌なことはいっぱいあるんだ。世界を探検して、それを全部見つけだして、全部排除するなんてことはできない。やるとしたらそれは一生をかける仕事になるし、一生が終わるときにも、まだまだ全然仕事が進んでいないことに気付かされて途方に暮れるだろう。
だからあなたは(ぼくは)、そんなことに時間を費してはいけない。嫌なこと、気に入らないことに目を向けて生きるのではなく、好きなこと、気に入ることに目を向けて生きたほうがいい。なぜか。……
http://www.jmuk.org/diary/2007/09/13/0
> で、ブラック・ボックスを組み合わせてやるのも楽ですし、本もいっぱい出ていますけど、そういうのは一応、ブラック・ボックスの中が判っている人が便利だから使うっていうのが正しいやり方であって、なんかわかんないけどとりあえず組み合わせればいいや、というふうにはなって欲しくないかな、と思います
一連の話を見てて思うのだけど、結局は「漏れのある抽象化の法則」(参照:Joel on Software)なんだよなぁ。「漏れのある抽象化の法則」という概念は、もっと世の中に知られていてよいと思う。それも「たぶんそれは正しい考え方だ」として。漏れのある抽象化の法則は、「銀の弾丸」に近い正しさを持っていると思うんだけどなぁ。
ただ、「漏れのある抽象化の法則」は分かりにくいとも思う。まず名前が分かりにくいし、「Joel on Software」を引用しても、どうもうまく説明できている感じがしないときがある。「分かる人には分かる」という感じが強い。なんかもうちょっと、生活に近いレベルで「漏れのある抽象化の法則」と同じことを説明している言葉や例ってないですかね?
あと、今回のような議論で紛糾しているのは、結局のところはここだと思う。
> なんかわかんないけどとりあえず組み合わせればいいや、というふうにはなって欲しくないかな、と思います
ここは、次のように(解釈なり表現なり、表現されていると考えるなり)したほうがいいんでないかな(shiroさんの言葉だけでなく、shi3zさんの言葉についても同様に)。
> なんかわかんないけどとりあえず組み合わせればいいや、というふうには(自分が好きな相手には)なって欲しくないかな、と思います
自分が好きな人には、「こうなってほしい。こう考えたほうがよいと理解してほしい」というのなら分かる。でも、自分が好きでもなんでもない相手にまで、自分の理想を理解してもらったり使ってもらったりする必要はない。これ、皮肉でもなんでもなくて、素直に、「そう考えたほうが、言っているほうも言葉を受けるほうも幸せだ」と思ってる。
だって、好きでもなんでもない人が、どのようになろうが関係ないじゃん。好きでもなんでもない人に対して「このようにあるべき。こうしろ」なんていわなければいけない、言いあわなければいけない世界は不幸だ。それぞれの人間は、それぞれの生き方を十分自由に選んでいい。絶対普遍的に「○○すべき」なんていえるような、明確なアフォリズムは存在しないのだから。(ヒント:どんなに優れた「○○すべき」も、抽象化が漏れる。そのとき「○○すべき」と言った人は責任取れますか? 取りたいですか?)
あと、もう書いてるけど、このように解釈するテクニックは、読み手のほうも持っていてほしいなぁと思う。つまり、「○○すべき」という言葉をどこかで見つけたら、こう考えてはどうかな? 「ああこの人は、自分の好きな相手(恋人とか友達とか家族とか)に向けて言ってるんだな。でも自分は彼の恋人でも友達でも家族でもないし、彼のことをそれほど好きなわけではない。だからその言葉を、自分の中に採用する必要はない」。
いいかい? ぼくはこう思う。自分の好きでもなんでもない人や何かが、何を言ってようが何をしてようが、関係ない。本当に、それは自分には(あなたには)関係がない。だから、何か気に入らない言葉や事物を見つけたとき、それがあなたの好きな人によって発せられたのでないなら、それを受け容れる必要もないし、ましてやそれに反発する必要もない。なぜか。
時間の無駄だから。そして大事なのは(あなたの(ぼくの))時間だ。気に入らないものを見つけたとき、それをやっつけて掃除することが価値になるケースもあるだろう。でも、実は世の中には、あなたの気に入らないものや嫌なことはいっぱいあるんだ。世界を探検して、それを全部見つけだして、全部排除するなんてことはできない。やるとしたらそれは一生をかける仕事になるし、一生が終わるときにも、まだまだ全然仕事が進んでいないことに気付かされて途方に暮れるだろう。
だからあなたは(ぼくは)、そんなことに時間を費してはいけない。嫌なこと、気に入らないことに目を向けて生きるのではなく、好きなこと、気に入ることに目を向けて生きたほうがいい。なぜか。……