メッセージ。 - もうちょい追記。ほとんど妄想と言いがかり
# もうちょい追記。ほとんど妄想と言いがかり
この議論はもう収束に向かってるんだろうけど、自分の中でひっかかるのでメモ。
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ビットなどにアラインメントされたワード単位でしか計算できず、マシン語の「設計」は、ハードウェアの制約との辻褄合わせがほとんどだ(たぶん。よく知らないけど)。
「計算」を行う機械としての電子回路は、抽象化が漏れまくっていて、プログラマはいつもハードウェアのことを意識しながら計算式を設計しなければいけない。これって間違ってないか?
----
バネでもランプでも論理回路は実現できるだろう。しかしそれで、現代の処理能力を持つ計算機を作ることはほとんど不可能だ。機械式の計算機でも論理回路を形成することはできる。でも、機械式ではロスが大きすぎて全然使いものにならなかった。その後、技術が発達して機械式から電子式に切り替わったことで、論理回路というのは抽象化の漏れをふさぎ、使いものになるレベルに達した。
つまり、論理回路の抽象化漏れをふさぎ、それを使いものにしたのはシリコン技術なのではないか。論理回路自体が抽象化の漏れをふさいだのではないという考え方。物性技術の進歩が抽象化の漏れをふさいだのだと。
----
なんとなくだけど、高級言語は今後もしばらくは満足な抽象化を提供しないと思う。たぶん、それをなしとげるのもまた物性技術の進歩だ。現代のような非常に短いワード単位でしか計算できないプアな計算機では、数学のような計算にまでスケールしないように思われる。量子コンピュータが実現したら、またパラダイムが変わるのではないかと思うのだけど。
Comment
# ネタにマジレスすいません
数学的には,真偽の証明だけが命なので,物理世界において使いものになるとかならないとかは全く関心事になりませんし.
1 bit ずつ計算しようが,ワード単位で計算しようが,もっと大きな単位で計算しようが,量子計算機で物理世界の特性を最大限に活かして計算しようが,計算能力自体はチューリングマシンと等価です (超並列世界論者などは,並行宇宙の特性を考慮していないチューリングマシンは,抽象化が漏れていると言いますが).
抽象化の漏れってのは,上の世界の概念だけでは説明できず,下の世界のことを知らないと解決できない現象が生じることです.
別にシリコンじゃなくても,バネでも水車でも量子でも,NAND の概念を表現できれば全ての論理回路は実装できるので,この層の抽象化は非常に強固かつ完全なものと言えると思いますが.
#
# あろはさん、どうも。...
一応、あろはさんの指摘されている内容は理解しているつもりです。上記文章は矛盾もいっぱいだし、感覚的で全然だめであることは間違いありません。独り言だと思って無視してください。
shiroさん、どうも。
議論は発散しているかもしれませんが、新しい発見や勉強になることもたくさんあったと思います。議論の本題については、自分でもオーバーフローぎみで、有用なコメントができそうにないのですみません。
Trackback