SHOT4

社会人大学院生の勉強記録

【書評】東浩紀「動物化するポストモダン オタクから見た日本社会」

f:id:meganeshot4:20200726110358p:plain
今回読んだのは東浩紀さんの「動物化するポストモダン オタクから見た日本社会」。一度は聞いたことがある人も多いであろう、2001年に発売された新書です。

前回書評を書いた「勉強の哲学」と同様、この本についても古くから知ってはいたもののなかなか読む機会を持てず。主催する活動ミテラボで名前が上がるたびに、いつか読みたいと思いながら本棚に眠る積読となっていました。今回は先月に引き続き「会わない読書会」の課題図書として、この本を設定し、書評を書いています。さて早速ですが中身に入っていきましょう。

書籍の概要

目次は下記の通りです。

  1. オタクたちの疑似日本
  2. データベース的動物
  3. 超平面性と多重人格

構成としては3章構成ですが、1章が序章、2章が本論で、3章が補論のような位置づけになっています。全体としては2章までで議論は一段落ついており、3章はそこからの発展編が補論として示されているような構成です。

ここからはざっと所感として内容を追っていきます。自身の理解の問題もあり、前半に集中した所感になります。

書籍の目的と当時から見た先見性

1章「オタクたちの疑似日本」では、オタク系文化の定義やそれについて議論をする重要性について書かれています。そしてここでは、本書は「オタク系文化について、そしてひいては日本の現在の文化状況一般について、当たり前のことを当たり前に分析し批評できる風通しのよい状況を作り出すこと」を目的として書かれていることが示されています。

現在は2020年、およそ20年前に出版された書籍なので、その時代性をふまえて読む必要があるわけですが、いわゆるサブカルチャー論がある程度普及した現代から見ればそんな時代があったのかと純粋に驚きをもって読める文です。そういう意味では、この本は先駆けとして確かに成功し、目的を達成したのかもしれません。

また2001年はぼくはまだ6歳、小学生になったばかりのころ。そこから5〜6年後の2008〜2010年あたりが僕自身がオタクとして活動をしていた全盛期でしたが、当時ですら肌感として「オタク≒キモい」という文脈が根強くあったことを考えると、相当に速い書籍だったのではないかと思います。

ちなみにこの本ではオタクを3世代に分けており、僕(1995年生まれ)はそのちょうどあと、系譜でいえば第4世代にあたることになります。

クール・ジャパンアメリ

そしてもう一つ面白かった点として、ここから「オタク論」が日本古来の文化に根付いているという主張をある意味で否定している箇所をあげます。今でこそ「クール・ジャパン」と呼ばれ、日本のアニメ文化が輸出されるようになっていますが、「クール・ジャパン」には日本古来の文化であるという意識が根強いように思います。

しかし著者は、日本のオタク系文化は日本の伝統文化と連続なものではなく、その源流はアメリカにあることを示しています。本文を借りれば、「オタク系文化の歴史とは、アメリカ文化をいかに『国産化』するか、その換骨奪胎の歴史だったのであり、その歩みは高度経済成長期のイデオロギーをみごとに反映してもいる。」と指摘されています。つまりアニメや特撮が「日本的」に、今の言葉で言えば「クール・ジャパン」になるまでの過程には「アメリカ」が差し込まれており、かなりねじれたプロセスであったというのです。そしてここで興味深い事象として、そのように輸入してきたアメリカのサブカルチャー国産化する中で、日本は「独特の美学」を発展させてきたことであると指摘しています。

最終的にはこの独自性が世界的に評価され、逆に海外のサブカルチャーに影響を与えるようになっている現代社会から見ると確かにと唸る反面、今度はその「日本的なサブカルチャー」を国産化するような動きが各国で起こりつつある現状、相対的に日本のサブカルチャーが影響力を失っていく可能性も十分にありえるように思います。

こういった指摘から、オタク系文化とは「アメリカ産の材料で作られた疑似日本」によるものであり、サブカルチャーを議論することは「日本の戦後処理の、アメリカからの文化的侵略の、近代化とポストモダンが与えた歪みの問題がすべて入っている」ことから、前節の目的設定がなされています。

繰り返しになりますが、サブカルチャー論が発展した現代から見れば、こうした指摘を改めてしなければならない時代にかかれた本であることを再確認すると同時に、確かに目的を達成していることに感動せざるを得ません。

データベース・モデルと2010年代アニメ

最後にもう一つ、本書の主題であるデータベース・モデルについて書いて終わりにします。「データベース・モデル」とは、著者がこの本で提示している世界の在り方を示すものです。近代の社会モデルである「ツリーモデル」は、「大きな物語」から生成される表層としての「小さな物語」を見る「私」と、「大きな物語」に規定される「私」という構造でした。

これに対しデータベース・モデルでは、これまで「私」を規定していた「大きな物語」が喪失し、データベース(情報)とその表層である「小さな物語」でできている。そしてデータベースを「私」が読み込むことでいくらでも異なる「小さな物語」が生まれてくる、という構図になっています。この構図は、情報と見せかけの二重構造になっている点、そして「私」側がデータベースにアクセスする仕組みになっている点が、「ツリー・モデル」と異なります。

データベースモデルで起きている事象は、例えば二次創作や萌え消費として表れています。2次創作とは、情報という名の設定を持ったデータベースがあり、そこに作者がアクセスをして新しい「見せかけ」を作る営みです。ここでデータベースにアクセスをする、という点がポイントで、2次創作では「データベース」に準拠していないものは、そもそも2次創作として認められません。

改めてこの本が書かれた時代を振り返ると、2000年にすでに放映されていたアニメは、「美少女戦士セーラームーン(1992)」「機動戦士Vガンダム(1993)」「新世紀エヴァンゲリオン(1995)」「名探偵コナン(1996)」「ポケットモンスター(1997)」「遊☆戯☆王(1998)」「ワンピース(1999)」「犬夜叉(2000)」あたりです(セレクションは主観が多分に含まれています)。

これに対してぼくが主に消費していたオタク系文化といえば、「涼宮ハルヒの憂鬱(2006)」「ヱヴァンゲリヲン新劇場版(2007)」「けいおん!(2009)」「STEINS;GATE (2011)」「魔法少女まどか☆マギカ(2011)」「Fate/Zero (2011)」など。上にあげた世代のアニメは「名探偵コナン」や「犬夜叉」など、いわゆる平日19時枠のアニメは見ていましたが、オタク系文化と自覚をしながら見ていた中で有名なものはこのあたりです。

何が言いたいかというと、上にあげた2つのアニメ群を比較すれば、後者のアニメ群は圧倒的にループものが多いということです。涼宮ハルヒの憂鬱では、エンドレスエイトという有名なループ回があり、あまりにも同じ構成のアニメが毎週流される事態に、当時一緒に見ていた父親と「これは本当に最新話か」と何度も確認をしたことを覚えています。「ヱヴァンゲリヲン新劇場版」は、リメイクかと思いきや当時のアニメとはところどころで話が異なり、ほぼループものであることが確定していますし、STEINS;GATE魔法少女まどか☆マギカに至ってはもはやパラレルワールドが前提の物語です。

そしてパラレルワールドやループものの物語構造は、データベースモデルなくしては基本的に有りえません。同じ時間軸で同じ世界観なのに、キャラクターの性別が違ったり、起きる事象が異なっていたり、といういわば「2次創作」的なストーリー展開は、その背後にデータベースがあるからこそ出来上がっているものと考えられます。

本書出版時点では、データベースモデルはまだ自明なものではなく、構造としてそこにある、というようなものだったろうと思います。しかしそこからおよそ10年後の2010年前後にはそのことは自明になり、また自覚的になったことで、多数のパラレルワールドが前提のシリーズや、ループを有効に利用した物語が展開されてきたのではないか、というのが本書を読んでの僕なりの体験からの仮説です。

2020年から見た「動物化するポストモダン

とはいえ、時代はそこからさらに10年。今は2020年です。感覚としては、けいおんなどから始まる「終わらない日常系」と、そこから切り出すことで無理やりに終わりを作る「サバイバル・デスゲーム系」が非常に増えているように感じますが、そことデータベースモデルの関連性まではまだわかりません。またそもそもその感覚自体が、今から見れば古いかもしれません。

もう一つ感覚として、もはやサブカルチャーは「オタク」の代名詞ではなくなってしまったようにも思えます。アニメを見ていれば「オタク」であったものが、最早アニメは誰でも見るし、◯◯オタクであることは特に「キモい」と結び付けられなくなりました。一方で、当時の「オタク的なもの」はよりその濃度を高めて一部残っているような気もします。このあたりの関係がどうなっているのか、という点も気になるところです。

本書の続編として、「動物化するポストモダン2」という書籍も出ているので、またどこかで読んでみたいところです。かなり長くなりましたが、ここまでとします。

meganeshot4.hatenablog.com

meganeshot4.hatenablog.com

【書評】千葉雅也「勉強の哲学ー来たるべきバカのために」:何も話せない、ということはない

f:id:meganeshot4:20200627225246p:plain
今回読んだのは、2017年に出版された千葉雅也さんの「勉強の哲学ー来たるべきバカのために」。東大・京大でいま一番読まれている本という帯の付いた本で、一度は装丁をみたことがある方も多いのではないでしょうか。

この本自体は実は出版された直後くらいから知っていたものの、なかなか機会がなく読んでいなかったのですが、初めて手にとったのが2019年8月。ちょうど改めて大学院に入学することを決め、院試の準備真っ最中のころでした。後ほど詳細は書きますが、このときえらく感銘を受け、その後会う人会う人におすすめの本として紹介をした記憶があります。

そして次に手にとったのはミテラボゼミ。ミテラボというぼくが主催メンバーの一人である勉強会グループでやるゼミ形式の輪読会の課題書籍として、この本を取り上げることになったのがきっかけでした。実は2020年に増補改訂版として文庫版が出版されていたため、この出版を待ってから課題書籍として取り上げることにしました。そのためぼくの手元にはこの本が2冊あります。

さてでは早速内容に入っていきましょう。

書籍の概要

本書の目次は以下のようになっています。

1. 勉強と言語ー言語偏重の人になる
2. アイロニー、ユーモア、ナンセンス
3. 決断ではなく中断
4. 勉強を有限化する技術
5. 補章 意味から形へー楽しい暮らしのために

5つ目の補章が、今回増補改訂版で追加された章です。またこれ以外に補論として、この本の背景にある概念・理論を専門家向けに概観する章が用意されています。

本書のテーマは勉強。勉強とは何か、ということを考えていくわけですが、より正確には「勉強はどのように生起するか」というHowを説いた本ということができそうです。というのも、本の冒頭にてまず「勉強とは何か」というWhatの問題は著者により答えが提示されます。

「勉強とは自己破壊である」。

この一言から本書がスタートし、まず1章では、なぜそう言えるのか、自己破壊とは何かということについて解説していきます。その後2章、3章では、その理論的な方法論を解説し、「アイロニー」と「ユーモア」という2つの方策をとりながら、都度決断ではなく中断をしていくような「勉強の方法」を提示していきます。そして最後の4章は、より具体的な方法論に入っていき、例えば本の読み方、メモ/ノートの使い方なんかを解説していく、という構成になっています。

そして増補版では、ここまでの4章が主に大学生の新入学生を想定して書いていたことから、必要以上にアカデミックな活動によったものとして解釈されていることから、より仕事や日常に生きるような方法として「作ること」に焦点をあてています。小説やダンス、音楽などを頼りに、どのように日常に創作をとりいれていくか、という視点が描かれています。

では前回同様、2つほどの観点について感想をまとめていきます。

1. 勉強とは自己破壊であるとはどういうことか
2. 何も話せない、ということはない

勉強とは自己破壊であるとはどういうことか

さてそもそも、この本では最初に定義されるこの「勉強とは自己破壊である」とはどういうことなんでしょうか。例えば、何の面白みもないですが、「勉強とは知識の獲得である」とか「勉強とは今の自分への投資である」とか、まあなんでもいいんですが何かを獲得するようなイメージであれば「まあそうだよな」と納得できそうです。

しかしこの本では「勉強は自己破壊である」と書いています。これは「変容」ですらなく「破壊」なんです。ここには千葉さんの一般的に「勉強はポジティブなものだ」という前提に楔を入れるような意図があるのかもしれません。勉強というのは、まあ嫌いな人が多いわけですが、できることは「いいこと」だと大体考えられるし、「したほうがいいこと」だとも考えているわけです。でもそれだけじゃない、むしろ勉強をすることで「失う」というイメージからこの本はスタートします。

例えば、同窓会をイメージするのがわかりやすいかもしれません。大学に入って、新しい仲間もできて、コミュニティにも所属し、ある程度時間がたったところで、高校の、あるいは中学、小学校の同窓会に出るとします。そうすると、自分としては高校までの自分と大学にはいってからの自分はもちろん地続きで、何ら変わっていないつもりなんだけれど、話しているとどうも噛み合わない、なんて経験はないでしょうか。要するに「言語が違う」感じがしていて、同じ言葉一つとっても、昔は笑えていたものが笑えなくなったり、何なら恥ずかしさすら覚えたりする、という事象が起きるわけです。

今となっては恥ずかしい話ですが、昔ぼくはジェンダーに知識がなく、浅はかにも性的マイノリティを友人とネタにするような「ノリ」を持っていた時期がありました。当時高校生だったぼくにはそれは「面白いもの」であったわけです。しかし大学に入った後、ジェンダー研究という学問分野を知り、知人に性的マイノリティを持ち、男女の不平等を知り、様々な「勉強」をすることで高校生のころの自分を「破壊」しました。そして今となっては、当時は当時として捉えてはいるものの、思い出話としても「笑うわけにはいかない」感覚を持っているわけです。本の中では「言語」が変わったことで、「ノリ」が移行してしまいついていけなくなった、というような状態として記されているものをまさに経験しました。

そしてこれ以降も、基本的にぼくは「自己破壊」としての勉強を趣味のように続けています。ミテラボという活動を通して「脱学校の社会」や「被抑圧者の教育学」を読み議論をすれば、いかに自分が学校教育というOSを持って生活を送っているか認知し、もうそれを手放しには承認できません。もちろん否定をするわけでもなく、ただ承認するにしてもそういった批判からどう立ち位置をとるのか、を常に考える必要があるわけです。「学校改革」には大抵の場合こういった「学校の外側」の視点が欠如しがちですが、この視点を持たない自分を「破壊」した今、その視点なしで学校を語ることができなくなってしまった、と捉えることができそうです。

何も話せない、ということはない

ここで冒頭の話に戻ります。そもそもぼくがこの本を最初に手にとったのは、大学院入試のために自分の研究計画書を書いているときでした。当時社会人を3年過ごしたうえでの大学院入試で、ぼんやりとイメージはあったものの、久しぶりに書く研究計画に全く筆が進まずカフェで頭を抱えていたのを覚えています。

そのときにぼくが抱えていた悩みは単純。社会人になってからもミテラボなどの活動を通して、勉強を続けていたのですが、そこでぼくが改めて認識したのは「勉強の際限の無さ」でした。どこまでいっても終わりのない深さ。それが自分にとっての勉強の魅力でもありましたが、その中で自分の研究を語るとき、そこには「怖さ」がありました。

要するにどこまでも深い海の中で、何かを話そうと思ってもどこに向けて、何を足がかりに、どこまでを語ればいいのか。そんなことはもう語られているのではないだろうか。という不安に苛まされていたわけです。

そんな中でこの本を読み「決断」と「中断」の違いについて書かれた章に出会います。「決断」とは「これは◯◯である」と断言するような、えいやっで決めてしまうような在り方。それに対して「中断」とは、あくまで今の時点では「こう言えるのではないか」という悩みながらも中断をして答えを出すような在り方を指します。

つまり勉強とは、どこまでもどこまでも深く、広く進むことができる。けれど、それを突き詰め続けていくと、どこにもたどり着くことができない。何よりも「勉強」というのは自己を破壊することで「ノリ」を変えていくような行為です。そしてその「ノリ」は変えることはできても、その外側「ノリの無い世界」にいくことはできません。なので元々定義からして「勉強」とは終わりのない旅なのです。

その中で「ここまで」と一度中断をする。根拠なくえいやと決断をするのではなく、悩み続けながら「ここまで」と中断をする。そういう在り方を本書では推奨しています。そしてこれはぼくの抱えていた悩みを喝破するようなものでした。

ぼくの悩みは、勉強の深さの前に「何も話せない」と怯えていたこと。でもあくまでここまで潜ると仮決めをして「話してみること」。中断して話してみること。これが重要なんじゃないかと改めて考え直す機会になりました。

長くなりましたが、今回はこんなところで。

問2.8 (制御構文)

問題文

tutorials.chainer.org

制御構文を活用して、2から100までに含まれる素数を列挙する問題

解答

a = list(range(2,101)) # 2〜100までのリストを作成
ans = [] # 解答用リストを用意

for x in a:
    for i in range(1,x+1):
        if i == x: # 素数だった場合
            ans.append(x)
        elif i == 1: # 1はスルーする
            continue
        elif  x % i == 0: # 割り切れたら抜ける
            break
            
print(ans)

[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]

もう少し簡単に書けそう。別解を見つけたら追記します。

meganeshot4.hatenablog.com

問2.6 (クラス)

問題文

tutorials.chainer.org

今回は条件に応じたクラスを作成する。

  • クラスは「class クラス名:」で作成する
  • __init__()関数を作成すると、クラスを作成したタイミングでこれが呼ばれる。コンストラク
  • クラス内の関数には(self)を引数として与える
  • クラスから作ったインスタンスの変数をいじりたいときは、self.xxxxと定義する

クラスの定義は下記の通り

  • クラス名:DataManager
  • __init__(self, x, y, z): 3つの数 x, y, z をコンストラクタで受け取り、インスタンスの属性でそれぞれの値を記憶する。
  • add_x(self, delta): x に delta だけ足して、値を更新する。
  • add_y(self, delta): y に delta だけ足して、値を更新する。
  • add_z(self, delta): z に delta だけ足して、値を更新する。
  • sum(self): x, y, z の3つの数の合計値を返す。

解答

class DataManager:
    def __init__(self,x,y,z):
        self.x = x
        self.y = y
        self.z = z

    def add_x(self,delta):
        self.x += delta
        return self.x

    def add_y(self,delta):
        self.y += delta
        return self.y
    
    def add_z(self,delta):
        self.z += delta
        return self.z
    
    def sum(self):
        return self.x+self.y+self.z

# 動作確認
data_manager = DataManager(2, 3, 5)
print(data_manager.sum())  # => 10
data_manager.add_x(4)      # => data_manager.x の値が 2 から 6 に更新される
print(data_manager.sum())  # => 14
data_manager.add_y(0)      # => data_manager.y の値が 3 から 3 に更新される
print(data_manager.sum())  # => 14
data_manager.add_z(-9)     # => data_manager.z の値が 5 から -4 に更新される
print(data_manager.sum())  # => 5

10
14
14
5

meganeshot4.hatenablog.com

問2.5 (文字列)

解答

今回は文字列処理。str.jion()とstr.format()を利用する。
どちらも詰まって他記事を参照。

問1str.join() を使って、0 から 99 までの数をスペース区切りで並べた文字列 "0 1 2 3 4 ... 99" を構成する
x = list(range(100))
ans1 = " ".join(map(str,x))
ans1

'0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99'

str.join()はint型の値ではエラーが出てしまうので、map()を活用してstrに変更することで解決。ここのエラーに詰まって一番時間がかかった。

参考
リストの要素をつなげて表示させる方法 - 強弱と高低

問2str.format() を使って float の値 (1.0 / 7.0) の小数点以下9桁までを表示する
"{:.9f}".format(1.0/7.0)

'0.142857143'

参考
Pythonの文字列フォーマット(formatメソッドの使い方) | ガンマソフト株式会社


meganeshot4.hatenablog.com

問2.4 (リスト内包表記)

解答

今回はリスト内包表記。

与えられたリストから偶数は0、奇数は1のリストを作る
a = [4,8,3,4,1]
ans1 = [x % 2 for x in a]
ans1

[0, 0, 1, 0, 1]

一つ前のリストから、奇数の数を数える

数を数えるときは、奇数は1になってるので、前に作ったものをsum()で合計すればOK。

a = [4,8,3,4,1]
ans2 = sum([x % 2 for x in a])
ans2

2

リスト内包表記で条件分岐を入れる
a = [4,8,3,4,1]
ans3 = [x for x in a if x % 2 == 1]
ans3

[3, 1]

meganeshot4.hatenablog.com

問2.3 (リストの基本操作)

解答

今回はリストをいじる。
pop()で削除するか、append()で追加するかのどちらかしかやらないので、ここは比較的簡単。

# リスト a の先頭の要素を取り除いて、[8, 3, 4, 1] となるようにして下さい。
a = [4,8,3,4,1]
a.pop(0)
a

[8, 3, 4, 1]

# リスト a の末尾の要素を取り除いて、[4, 8, 3, 4] となるようにして下さい。
a = [4,8,3,4,1]
a.pop()
a

[4, 8, 3, 4]

# リスト a の末尾に 100 という値を追加して、[4, 8, 3, 4, 1, 100] となるようにして下さい。
a = [4,8,3,4,1]
a.append(100)
a

[4, 8, 3, 4, 1, 100]

meganeshot4.hatenablog.com