Photo by Katsiaryna Endruszkiewicz on Unsplash
ひとつの業務が終わる間際になって、ぬとぬとと粘着質な問題が発生した。なるべくなら被害を最小限に抑えてことを済ませておきたかったが、正解ではなかった。私は見事に被弾し、目に見えないダメージが蓄積された。それでも問題は解消に向かいつつある。もう少しだ。
twitterで珍獣(@mc_chinju)さんが「具体と抽象」という本を紹介していた。面白そうなので読むことにした。その名の通り、具体と抽象について書かれていた。
著者は、わかりやすさ、つまり具体が増えている近年の現象を恐れていた。具体は急激な社会の変化に対して弱く、適応できないのだと。
社会がひとつの性質のまま順調に進むとわかりやすさが増えてくる。書店の平積みのタイトルを眺めるといい。「xxなら〇〇しなさい!」「xxな人は〇〇をする!」そのようなものが多い。タイトルも長い。
そういうわけで、抽象化を説明するという流れだった。
抽象化とはなにか。私の言葉で表現するなら「複数の事象を共通する枠組みでまとめること」である。その枠組みは重複もするし、上流下流の概念もある。筆者は以下のような説明もしている。
抽象化とは複数の事象の間に法則を見つける「パターン認識」の能力ともいえます。身の回りのものにパターンを見つけ、それに名前をつけ、法則として複数場面に活用する。これが抽象化による人間の知能のすごさといってよいでしょう。
細谷 功. 具体と抽象 (Japanese Edition) (Kindle の位置No.246-249). Kindle 版.
抽象化を身につければ、少ない枠組みで複数の場面へ適用することができる。応用が効くのだ。
これはもしかしたら、プログラミング学習でも必要なことかもしれない。システムを構築するにあたり、実装したいいくつかの機能を考える。それらを共通化できないか、上位と下位でわけられないか、考える。そしてひたすらコードをうつ。
考えるのが抽象化で、コードにするのはひたすら具体化である。こうしてコードを書く人は、抽象と具体を行き来しないといけない。
ただ、この本で気になったのが、事象を数式一つで表現することの賛美だった。どういうわけか、人間は単純な式を求めがちである。世界の法則がごくごく単純なロジックにより固められていると望んでいる。抽象化の美学である。ただ、現状のところはそううまくはいってない。ニュートン力学が適用できるのは大きめのもののみ。小さいものには量子力学が適用できる。
現在、これらを統合する枠組みをみんなですごい探している。いつか存在するのだろうか。
単純にひとくくりにすればいいだけではない。例外も存在しうる。それを許容する空白というか、スペースというか、そういうものを自分の中に持っておきたい。