版画のことを考えていて、「版」とはそもそも具体的な版画技術に対する抽象概念で、この概念を元に複製の生産システムを考えることができる。木版も銅版も石版も「版」という抽象であれば、自動車を作る工場も「版」と呼んでいいかもしれない。この比喩を敷衍すれば自動車も印刷するものになる。こういう抽象化をやるのは、それによって設計が可能になるからだけど、ある比喩がどこまで適用可能かみたいなことが「抽象化の漏れ」なのかもしれない。
The Law of Leaky Abstractions
https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky-abstractions/
おもしろかった。
https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky-abstractions/
おもしろかった。
- replies
- 1
- announces
- 0
- likes
- 2
TCP は必ず届く信頼できるプロトコルだが、IP は情報が届いたり届かなかったりする。だが TCP は IP という信頼できない情報網の上に成立している。これは魔法である。
ジョエルはこの魔法を説明するのに、ハリウッドに俳優を送りこむのに、俳優を車に乗せる方法を考える。この車は不幸にもしばしば事故によって俳優を死なせてしまったり、気付いたらその途中で俳優の見た目が変わっていたりするものとする。この自動車による俳優配送システムのうえに、ハリウッド・エクスプレスというサービスが構築され、このサービスは俳優を順番通りに完璧な状態で到着することを保証する。途中で事故があったら俳優の双子を届ける。途中で渋滞があっても、届くのを待つ側としてはちょっと遅いなとおもうくらいで、届くことは保証されている。
これがTCPという魔法で、コンピュータ科学で言う抽象化(abstraction)である。ハリウッドエクスプレスは、例外を処理してどうにか期待された結果になるようにしている。例外をハンドリングできていれば抽象が確実に機能するという幻想は保証されているが、例外なんていくらでもあるわけで、ルーターに繋がるケーブルが千切れていたらいかにTCPであれ届けようがない。これをジョエルは「抽象化の漏れ leaky abstraction」と呼ぶ。
ジョエルはこの魔法を説明するのに、ハリウッドに俳優を送りこむのに、俳優を車に乗せる方法を考える。この車は不幸にもしばしば事故によって俳優を死なせてしまったり、気付いたらその途中で俳優の見た目が変わっていたりするものとする。この自動車による俳優配送システムのうえに、ハリウッド・エクスプレスというサービスが構築され、このサービスは俳優を順番通りに完璧な状態で到着することを保証する。途中で事故があったら俳優の双子を届ける。途中で渋滞があっても、届くのを待つ側としてはちょっと遅いなとおもうくらいで、届くことは保証されている。
これがTCPという魔法で、コンピュータ科学で言う抽象化(abstraction)である。ハリウッドエクスプレスは、例外を処理してどうにか期待された結果になるようにしている。例外をハンドリングできていれば抽象が確実に機能するという幻想は保証されているが、例外なんていくらでもあるわけで、ルーターに繋がるケーブルが千切れていたらいかにTCPであれ届けようがない。これをジョエルは「抽象化の漏れ leaky abstraction」と呼ぶ。
この抽象と抽象化の漏れの話、メディアの透明化みたいな話だなとおもう。コンピュータが上手く機能しているときコンピュータの存在は忘れられている。ドナルド・ノーマンは、私は仕事をしたいのであってスプレッドシートを操作したいのではないというようなことを言ったけど、コンピュータを操作するとかスプレッドシートを操作するとかが意識されている内は、仕事に対して道具の具象性のほうが露出してしまっている。「あの値をこう計算したいんだけど、スプレッドシートの関数なんだっけ?」みたいなあれ。UIとはまさにこういった抽象化層で、もろもろ漏れがないように抽象化するわけだが、まあいずれにせよ人工物が人間の多様性と複雑性にかなうことはないだろう(漏れはかならずある)。