【2万4千字】プログラミングにおける「論理的思考は重要だ」思想の罠【ととのい】

※当記事は、往復4時間通勤を繰り返したインターンが台風の影響で書いた記事です。本来はnoteに個人的に掲載したものです
https://note.mu/rpakeibi/n/n9695c59c3587
生暖かい目で見守って下さい。

「エンジニアリングやプログラミングには論理的思考力・数学的思考力が必要だ!」「ロジカル・シンキング!」などの文言は、とても良く見かけますよね。昨今はプログラミング教育必修化やそれに伴うスクールやSEOの都合もあってか尚更よく見ますよね。私も後者の波に乗ってRPAエンジニア(設計・コーディング等やります。自己紹介です。)になりましたからホントよく見かけました。

自宅警備員歴10年!?「ワタシハ、RPAチョットデキル」RPA伝道師の中村さんにインタビュー!

2019年6月19日

ところで、IPAこと情報処理推進機構から天才プログラマーに認定された、登 大遊 氏(現・筑波大学国際産学連携本部准教授)は、「論理的思考の放棄」がプログラミング領域において重要だと説きます。彼は1日最低3000行、最高1日1万行(C言語らしい)書けたりする自身の能力の根源を探り、「論理的思考は厳禁」、「徹底して、感覚的思考でやる」ことが必要だという答えに辿り着かれたようです。これは12年前に局所的にバズったらしい記事です。

はい。この記事、すごいんですよ。もう読み終わりましたか?コメント欄も必ず読んでくださいね。読み終わって内容に共感して腑に落ちたのならば、もうこのnoteを読む必要はありません。

登氏の記事は本当にすごい。本当にありがたい。私みたいな計算機科学や情報科学を修めたわけでもないニワカの凡才にも多大な恩恵・生産性を授けてくれる、聖書なんですね。

何がすごいかというと、教育効果がすごい。どのくらいすごいかというと、自宅警備キャリア10年、産廃扱いや門前払いを受けがちな未経験ニートが600時間労働して1万時間削減した実績を与えるくらい凄いんですね。(もちろん、聖書以上に周りの方々や環境の恩恵が大きいことは忘れてはなりませんが。)

その教育効果のすごさを、布教したくなってしまいました。それはサウナー(サウナ愛好者)がサウナの効用を「神秘」的な表現を用いて布教したり叙述することと同じようなものです。そもそもこの登氏の記事は、サウナで言う「ととのい」を示しているようなものですから…(※終盤で言及します)

ということで、布教します。論理的思考を控えてほしいという意図を、論理的思考をする事によって示してみます。多分、あちこちに綻びが出るでしょうけれど、その綻びこそが論理的思考の危うさを示しているという事にして、綻びがある点については何卒ご容赦頂きたいです。

論理的思考で行き詰まっている人が論理的思考をやめる手助けと慣れば幸いです。新興宗教じみていますね。

なぜ布教してしまうのか。信仰心?いや、単純に片道2時間通勤という愚行を長々と繰り返していたせいでしょうね。
布教内容の要約は以下です。

っとその前に、この『論理的思考の放棄』は、あまりにも偉大すぎる記事なので、以後

『登子』

と表記します。諸子百家の思想家に倣い、著者名に先生の意を表す「子」を付けさせて頂き、書名と著者名を同一化せざるを得ませんでした。実際に筑波大の准教授(『登子』執筆時は学部卒業したて?)ですから大先生です。いやーこの内容で無料。やべえ。00年代の記事はいいぞ。

この記事の要約

・なぜ「聖書」か。それは『登子』において、どうやったら人間は上手くプログラミングができるのか?という問いについての答え=最終到達地点が、端的かつ普遍的に語られているからである。そして聖書として示す内容が、ある点において禅に似ているから、宗教に似ている(宗教的または求道的)としている。証明できないし、方法も内観だから科学的とは言えない。
(※サウナで例えるならば、『登子』には、「ととのい」が示されている。しかしその地点は言語を絶している、「ととのい」も結局は自分の身を以てして最適を見つけなければならない)

・プログラミングは、論理的思考は放棄するか、最小限に留めて、感覚的思考で行うと、上手くいく。即ち生産性が向上し、エラーが少なくなり、スピードが向上する。なぜそれらが実現されるのか?要は「論理的思考そのものが、そもそも人間のアーキテクチャに適していないから」「余計に疲れなくて済むから」。しかし当記事は布教であるから、論理的思考の放棄がいかに素晴らしいかを示すために、「凡夫による論理的思考」という非効率極まりないやり方を行う。そこでは、登子がその圧倒的賢さ故に定義しなかった「論理的思考」を定義する。

・論理的思考をしようとしなかろうと、コードは書いたとおりにしか動かない。設計したりコードを書くにあたって、論理的思考をする義務はないし、論理的思考は余計な解釈を生み出しかねない。(※他者に示す際は論理的である義務はあるだろう)

・「論理的思考の放棄」には極端な側面もある。登子本人は絶対に論理的思考はするなと述べる一方で、下記のようにも述べている。

登子、曰く

論理的思考は完全にゼロということにはできないけれども、可能な限りゼロに近づける、これがコツです

「論理的思考の放棄」 コメント欄

つまり人間は論理的思考を最小限にすることも肝要ではないか。そこで、この「最小限」とは具体的にどういう状態なのか。『登子』中の内容から導くと「対象物への関数ポインタの獲得と保持」がなされた状態となる。これは「最小限」と同様に必要な「感覚的思考」の獲得にも必要と思われる。有用である事に加え、プログラマーの3大美徳に通ずる。

・どのようにして、関数ポインタは獲得・保持されるのか。一定の数をこなし、手続き記憶的に記憶する、定期的に行う、至極当然のことが必要ではないか。

・「論理的思考の放棄」「最小限の論理的思考」「感覚的思考」によるプログラミング(情報処理)の実例は、唐代の禅や、2000年前即ち紀元前の天才たちが記した中国古典に既に示されている。これはプログラミングと同じようなものであるから、実例として紹介する。そこで本記事は終わる。

反復して、経験するほかないなあ、そこで登子の考えは役に立つなあ

『登子』の要約

さて、この『登子』。内容を抽出しますと

・論理的に考える、頭を使う、ことについては、否定的

・人間のアーキテクチャはフォン・ノイマン型のアーキテクチャとは全く違う

・設計は、絶対に論理的思考で行ってはならない。徹底して、感覚的思考をもって行う必要がある

・論理的思考をやめろ、感覚的思考でやれ、その事によって高速・高品質・低エラーの実装が可能。1日1万行書けるときもある。設計に変更が出ることもなくなる

・エラーが起こる理由は、論理的思考をしていないのだから、論理的にはわからない

・経験量や向き不向きの差ではない(コメント欄)
・対象への関数ポインタの獲得が必要(コメント欄)

このような事が書いてあります。コメント欄を見ても、天才は違うなあとか、経験だよなあ、結局論理じゃね?のような反応が多いですし、確かにそれらには頷けます。1日1万行とかわけがわかりませんからね。しかし、ここで注目したいのは、この『登子』が、私のような、別に計算機科学や情報科学を履修したわけでもなければ、特別興味があったわけでもない、単なるニワカに対しても、恩恵をもたらしてしまう、という点です。

『登子』の性質 宗教的または求道的

なぜ『登子』は私のようなニワカの凡夫にも恩恵をもたらしてしまうのか?RPA実装は深層学習のような高度なアルゴリズム理解と実装能力を必要とはしないから?エクセルの延長が多いから?……後者2つはかなりあるかもしれませんが、もっと良い理由があります。

登子には、どうやったら人間は上手くプログラミングができるのか、という問についての答えが、普遍的な在り方・方法論として示されているからこそ、私のようなニワカの凡夫にも恩恵を与えてくれるのでしょう。普遍的であるのならば、それは多くの人に普く受容される在り方や方法論とも成り得ます。つまり、私以外のヒトにも受容されるかもしれません。だからこそ布教しているのです。ただしその内容は、科学的である!!とは言えないので、なぜ科学的とは言えないか、なぜ宗教的または求道的(宗教や求道に似ている、の意)なのか、なぜ偉大なる聖書たり得ているかを示しておきます。

・『登子』は、どうやったら人間は上手くプログラミングができるのか、についての方法論を示した記述である。その内容には普遍性があると思う。

登子、曰く

恐らくプログラミングだけでなく、色々な物事の設計や、文章の執筆、自動車等の運転などおおよそほとんどの作業で活用することができるのではないかと思う

「論理的思考の放棄」

・普遍性がある記述といえば、科学が挙げられる。科学ならば、適切な仮定設定、厳密な統計、仮説に適した実験手法、再現可能性、記述される義務などなどを満たしている必要がある。

・しかし、『登子』は、科学ではなく、宗教的(または求道的)思想であると思う。なぜ「宗教的または求道的」か?

宗教とは、何でだろう?を繰り返してしまう人間という生物に、「何でだろう?の最終到達地点」を、生活に根差して提示している。その提示形式が記述である義務はない。
※信仰とは、その最終到達地点を決して疑わず、それを絶対的だとして信じること

・登子は、人間はどうやったら上手くプログラミングができるのか、即ちプログラミング領域における「高速・高品質・低エラーの実装」が実現できるか?という方法論の最終到達地点として、「論理的思考の放棄」を提示している。

・しかしコメント欄で登子本人が言っているように、この方法は言語にすることが難しい

登子、曰く

「普通の人が諦めずに、同じくらいのことができるようになる方法を伝えたいと思って、論理的な言語を使った表現方法である文章としてこれを書いたのですが、その時点で情報量が削減されてしまう」

「論理的思考の放棄」 コメント欄

方法を知ることでそういう効率的な方法で仕事ができるようになるのだが、その方法を他人に伝えるというのは、難しいことである。なぜならば、その方法は理論的でない為である。
頭の中の、理論的でない部分を最適化しないといけないためで、そのための方法を、「言葉」という理論的な表現方法で記述することは、極めて困難だと思う。

論理的思考の放棄2

・登子はコメント欄において、直下の引用のように、「脳内でどのように言語変換をすればよいか知っている」、としている。脳は身体のうちに含まれるから、実際に論理的思考の放棄に至っている登子は、論理的思考の放棄を身体において実現している。

登子、曰く

プログラミングのとき ”脳内で、どのように言語変換すればいいか” を知っていますが、現時点で、論理的記述言語である言葉を用いて文章化することが困難です。だからプログラミングの分厚い良書というのは何十冊もあるが、それを読んだからといって、なかなかわからないわけです

論理的思考の放棄

参考(引用元記載あり):わずか一尋(ひとひろ)のこの身のなかに 『赤馬経』| 光華女子学園

・『登子』中では「論理的思考の放棄」の実例を示している節で「ひたすら何も考えない」ことを要請しているが、これは禅的ではないか。

登子、曰く

実際のプログラミング作業を例にして、解説する。
まず、だいたいこういうソフトウェアがあればいいなあとか、このような機能を付ける必要があるなとかいった、とても抽象的なことを思い浮かべる。この際、「絶対に論理的に考えないこと」が必要である。論理的に少しでも考えてしまうと、途中までうまくいっても、それが壊れてしまい、最初からやり直しになるので注意する。

論理的思考の放棄

自動的に手がキーボードを打ち、プログラムを入力して完成させてくれる。この処理は一切、論理的思考では行われていないので、途中で論理的思考を行うことは厳禁である (作業の邪魔になる)。ひたすら何も考えない。

論理的思考の放棄

・「何も考えない」とは、言語を使わないことを意味する。(※ここの詳細が次節の内容です)

・禅は宗教であり、その言わんとする所、即ち「最終到達地点」とは「悟り」「苦が終わった永遠の安息の領域に至る事(死ぬわけじゃない)」である。その上で「不立文字」をスローガンに掲げているが、これは「悟りの領域には言葉だけでは辿り着けない」という意味が含まれている。同様に、「言語道断」という言葉もあるが、これは「言語」が迷いや苦の根源である事を示唆している。

参考:言語道断|大谷大学

・登子は、人間による論理的思考という、コンピューターを模した言語的行為こそが、我々凡夫のコーディング量の相対的な少なさの原因ではないか、としている。

人間の感覚的思考機能の上でエミュレーションされた論理的処理機能は、所詮エミュレータ上のようなものなので、実マシン (人間本体) と比較すると、とても処理が遅い。オーバーヘッドが大きすぎるのである。あらゆる方式の処理を瞬時に同時実行することができる人間の頭脳がせっかくあるのに、論理的処理用の仮想環境を脳の中で構築し、その上で物事を考えるから、効率が悪くなる。

これが、普通のソフトウェア開発者が 1 ヶ月にわずか数百行 〜 3,000 行程度しかプログラムを書くことができないという原因になっている。人間の中に構築することができる仮想の論理的処理エミュレータは、性能が低すぎる

論理的思考の放棄

・どうやったら人間はプログラミングが上手くできるのか、についての登子の示す最終到達地点は「論理的思考の放棄」であるが、それは言語で表しきれない。禅における最終到達地点も、言語で表しきれないとされる。

・『登子』における最終到達地点は、身体的である。仏教・禅的な悟りについても、身体的である。

・『登子』には宗教と似ている点があるのかもしれない。(単に私の書き方がそのようであるだけかもしれないし、「最終到達地点へ到達するには修練が必要」という意味では、求道的といったほうが正しいかも知れないし、スポーツ的かもしれない。ただし布教と言うからには、宗教と類似しているほうが都合が良い。それはそうと論理的思考の放棄3のコメント欄に新興宗教みたいとか書かれてしまっています(小声))

以上の理由により、「聖書」と形容しました。こち亀にこんな話があるように、ここまでグダグダグダグダ言う必要はないと思いますが、論理的思考を行う事を重要視してプログラミングしようとすると、このようにグダグダ言うことになりかねない、という事を示す魂胆があります。バイアスも絡んでしまいますし。

もちろんプログラミング上であれば、最終到達地点は0か1かとなる(量子とか言わないで)ので、それらを余計な解釈を一切発生させずに一切誤らずに国語的に読み取れているのならば、論理的思考は有用となりうるかもしれません。しかしそれは後述するような、既に獲得された「感覚」には及ばないと思います(プログラミング領域)。
なお、上記の箇条書きの後半については、これから書く内容と重複します。なお、禅については、「なぜ「論理的思考の放棄」で、プログラミングはうまくいくのか」の内容を踏まえた上で、終盤で更に発展的に述べられます。

なぜ「論理的思考の放棄」で、プログラミングはうまくいくのか

ここからは、「論理的思考は放棄するか、最小限に留めると、生産性が向上し、エラーが少なくなり、スピードが向上する」のは何故か、に入ります。これはあくまで、設計とプログラミングの話であって、実務上の(包括的な)エンジニアリングの話を言っているのではありません、と予防線を張ります。

今更過ぎ感満載ですが、「論理的思考の放棄」なんていう人目を引く逆説は、実績ある人が言うからこそ説得力があるものと思われます。したがって、本来私ごときの虫ケラが言うべきではないのでしょう。当然ながら私には未踏系の画期的な実績はありませんし、周りの方々の協力という聖書以上の恩恵のもとで、自宅警備10年ニート未経験からの週3~4、計600時間労働で1万時間くらいの削減(今後もっと増えますが)をやっと実現した程度の実績しかありません。そして部分的には論理的思考が放棄されてきているとはいえ、論理的思考がまだまだ必要な段階でもあります。

さて本題。簡単に言うと、

人間への処理の負荷がオーバーする事が減る。

慣れはすごい

となります。オーバーヒートしなければ、そりゃ早くできます。いちいち筆算なんかしなくてもいいよね。

ところで、登子は、論理的思考の厳密な定義付けをしておらず、そんなことを定義しようとすることのナンセンスさすら示唆している本当に賢い人物です。まるでウィトゲンシュタインです。賢い!天才!でも私はそうではありませんね。

登子、曰く

複雑で難易度の高い作業においては、例えコンピュータプログラミングなどの超論理的な結果を得るための作業でも、「論理的な思考」はほとんど不要である。

ここで「論理的な思考」の定義を細かくすることはしない。そもそも、細かく定義しようとすること自体がすなわち「論理的な思考」である (論理的に、厳密に定義しないので、あなたの頭の中で、「論理的な思考」というイメージを自在に思い浮かべれば良い)。

僕は脳科学について詳しくない (今勉強を始めようとしている) ので、以下に書くようなことは、論理的・(既存の) 科学的には間違っているかも知れない。だが、論理的な思考をしないで欲しいという意図を説明するために書くのだから、論理的に間違っている点については目をつぶって欲しい。

論理的思考の放棄

登子、曰く

現在のコンピュータは、論理的な処理しかできないが、人間には感覚的な思考処理が行える。人間のアーキテクチャと、現在のコンピュータのアーキテクチャは、全然効率が違う。

人間の感覚的思考機能の上でエミュレーションされた論理的処理機能は、所詮エミュレータ上のようなものなので、実マシン (人間本体) と比較すると、とても処理が遅い。オーバーヘッドが大きすぎるのである。あらゆる方式の処理を瞬時に同時実行することができる人間の頭脳がせっかくあるのに、論理的処理用の仮想環境を脳の中で構築し、その上で物事を考えるから、効率が悪くなる。

論理的思考の放棄

登子、曰く

コンピュータの前に座って、キーボードの上に両手を置けば、後はあまり考える必要はない。自動的に手がキーボードを打ち、プログラムを入力して完成させてくれる。この処理は一切、論理的思考では行われていないので、途中で論理的思考を行うことは厳禁である (作業の邪魔になる)。ひたすら何も考えない。

論理的思考の放棄

はい。論理的思考が作業の邪魔である理由を知ったところでプログラミングが上手くいくわけではありませんし、それが作業の邪魔である理由は言語化されていないだけで、実は身体的には知っているのかもしれません。しかし一方で、この『登子』を読んだ後に「論理的思考の定義づけというナンセンス」を行うと、「論理的思考」がいかに非効率でエラーが多そうであるか、そして如何にプログラマーの三大美徳・怠惰に反するか、という事が自分でわかりましたから、自分への戒めも含み、論理的思考によって、論理的思考の放棄の素晴らしさを説きます

ということで、論理的思考の定義の前に、論理とはなにか?から入ります。「下手の考え休むに似たり」という格言がありますが、それをこの身を以て示します。

論理とはなにか、論理的思考とはなにか(こんな事を問うた所で、設計もプログラミングもうまくはならない)

・論理とは繋がりを扱うための根底条件である。これがあってこそ、我々は言葉を扱える。

・「言語」を用い、「対象(主語)」を言語化して、述語を用いて繋げると、「文」ができる。これらを適切な接続表現で、飛躍なく筋道を立てて繋げていくことを、この文章内では「論理的思考」とする。その文はtrueとfalseを返す。言語には楽譜で使われるような記号も含む。

※飛躍があっても言語で扱えれば、つまりtrueとfalseで扱えればそれは論理の範疇という意味で論理的ではある。しかし論理的思考でググるとtrueとかfalseとかは出てこずに、MECEがどうこうとかそういうのしか出てこないので、「飛躍なく」「筋道を立てて」という語を付加した。しかし飛躍とか筋道なんて言葉の根拠を探っていくと、どんどん無根拠になっていく。ただしそれによって、現実は以下に示すような静的型付けではないという自明の道理に気付ける。登子は論理的思考の定義付けを避けることによって、このような泥沼化を避けている、本当に賢い人物である。

・繋げるのだから、繋げる対象(主語)が必要である。
・対象は、認識されることによってはじめて対象となる。

なんだか小難しいので、もうすこし言葉が優しい論理的思考を行います。例えば自分の目の前にラーメンとお箸があったとします。そこで人間は目の前にある何らかの対象を、「あれはラーメンである」「あれはお箸である」と、言葉で言えます。

これは、「ラーメン」「お箸」という対象(主語)を、自分が認識できていて、かつそれを表現する語彙を知っているからにほかなりません。その語彙を知らなかったら適当に名付けるほかありません。

ところで、「ラーメン」や「お箸」とは、「ラーメン」「お箸」という物理的な実体ではなく、単なる名前、つまり、言語です。これは現実の事物の代理人・写像でしかありません。そして「ラーメン」「お箸」が認識される以前は、ラーメンもお箸もない、「真っ更」の状態です。この『真っ更」の状態は、言わば根底条件のようなものです。これが論理的思考を行うにあたっての根底条件としての「論理」です。「論理空間」とも言うそうです。

ここで、ラーメンとお箸という対象は論理空間に存在する2つの主語であります。プラスチックとか木製の2本の棒と麺類はまあ一緒では無いのでしょう。(物理的にはどうだか知りませんので、その関係の本を今読んでいます)

このため、「ラーメンである」は対象は、「お箸でない」を含意しています。同様に、「お箸である」対象は、「ラーメンでない」を含意しています。ここで、この「でない」「である」は述語であり、主語と繋がっています。これは先程定義した論理的思考に必要だと考えます。もし述語がなかった場合、そもそも「ラーメンである」とか「ラーメンでない」とかも言えません。よって、先程定義した論理的思考ができません。その場合、「ラーメン…お箸…!」とか言い出す事になります(※ここに到達することが目標です。片言だと良い)。これがもうちょっと抽象的になる(食べ物、食器)と、登子の言う「抽象的なことを思い浮かべる」にあたると思います。

登子、曰く

実際のプログラミング作業を例にして、解説する。
まず、だいたいこういうソフトウェアがあればいいなあとか、このような機能を付ける必要があるなとかいった、とても抽象的なことを思い浮かべる。この際、「絶対に論理的に考えないこと」が必要である。論理的に少しでも考えてしまうと、途中までうまくいっても、それが壊れてしまい、最初からやり直しになるので注意する。感覚的な思考でもってこれを行うのである。

次に、だいたいイメージができたところで、心の中に、ソフトウェアの設計図やデータ構造といったものを思い起こす。ここで注意するのは、「絶対に論理的に考えて設計をしないこと」である。徹底して、感覚的な思考でもって設計する。

論理的思考の放棄

例えば、PCとデスクくらいしかないオフィスで、何らかののドキュメントとにらめっこをしている隣の人が、突如としてカタコトで「ラーメン…お箸…!」とか言いだしたとして、「隣の人は、論理的思考しているなあ!!!」とは、思えないです。私には。

でも、ラーメンの目の前で単にラーメンって言ったらその目の前のラーメンを指すよな?そんな「である」「でない」で済むほど、目の前にある物理的なラーメンとかお箸は静的じゃないだろ!意味は場に応じて動的だろ!どうやって会話するの?そもそも主述で分けるのは日本語の言語構造に合っていない?屁理屈?ああ…!論理的思考は辛い…!わたしのおつむにはつらすぎる…!

しかしいずれにせよ、これらは「言語」です。この「言語」を操作する行為の一つが、主題である「プログラミング」であります。機械語だけどね。そして私は、その機械語・プログラミングの世界で扱える対象と言語を僅かとはいえ認識しています。言語が及んでいるので、論理で扱えますし、論理的思考も可能になります。そしてやったことがあるからこそ、「感覚」も多少なりともわかります。感覚としては、機械語の世界は、話し言葉の世界より静的だと思います。

※こんなことやりながらプログラミングしていたら遅くて当然なんですが、論理的思考の放棄の合理性を説くために、論理的思考による記述を続けます。それはそうと、このままでは言語が及んでいない範囲=未知の範囲には論理的思考が及べないから、実質放棄されているのでは?ならばうまくいくのでは?とも勘違いされかねません(ビギナーズラックはあるかもしれない)。

しかし、「放棄」するには、そもそも「持っている」必要がある、としています。持っていなければ、後から上手なプログラミングをやるにあたって重要だとする「最小限の論理的思考」すらできません。やはり一度は認識する必要があります。そして登子の推奨する「感覚的思考」を行うにあたっても、感覚とするためには一旦神経に刷り込む必要があると思います。こんなことになるから、論理的思考は本当に辛いことなのです。プログラミングはここまで辛くありません。

・ここで、論理的思考を放棄するためには、そもそも「言語」を使わなければ良いのではないか?
『登子』では心の中のイメージによる設計を推奨している)

・そもそも「プログラミング領域における対象の言語化」をしないければよい。

・いっそ対象への認識を止めれば良い。

・しかし、対象Xを対象Xとして認識して、それに名前を付けてしまうのは自然で無意識的・日常的な反応でもあって、ここから離れるのは難しい。ではどうするか?

・そもそもこの文章内における「論理的思考」をするには、述語が必要である。主語だけでは論理的思考とは言い難い。(主語だけの言葉が文脈なしに突如として論理空間に出現した場合、述語が付いていない。繋がっていないから、文でもない。この文章内で言う論理的思考でもない。)※述語が付いていないだけで、対象が存在してしまっている以上、実際はtrueとされる?

・対象=主語が認識されてしまうのは仕方ない。ここで、論理的思考を放棄するためには、述語を付けることを、放棄すればよいのではないか?そうすれば「ラーメン…!お箸…!」(カタコト)になれる

とはいえ、述語やめろよ!といっても極端です。現実的には述語を付ける態度を極力控える・避けるあたりから始めるとよさそうです。登子もコメント欄においては、論理的思考をゼロに近づける事を推奨されています。

するとどうなるか?

・対象を対象として扱うと二元性が生じ(「真っ更」な状態に対象が足されていく)、それが重なれば多元化するが、「対象の言語化」または「対象への述語付け」をしなければ(控えれば)、そもそも対象が発生しないか(少なくなるので)、多元化しない。

先に「ラーメンであり、お箸でない」「お箸であり、ラーメンでない」の例を上げましたが、ここに「れんげ」「テーブル」…いや、「食器クラスを新設します」「お箸」「れんげ」とか言い出したらキリがありません。つまり、論理的思考を行うと、「言語で扱う対象が増える」といえます。(多元化)

・コンピューターによる情報処理において、一定の度合いを超えて多元化した情報の処理を行う事が、より多くの負荷をCPUやメモリに強いるように、人間による情報処理においても、一定の度合いを超えて多元化した情報は、人間の情報処理機構により多くの負荷を強いる。

・エラーが起きたり、生産性やスピードが落ちたりするのは、主に疲れている時だ。上記のような負荷が、一定の度合いを超えて人間に加えられると、人間はより疲れる。(※一定の度合い以内の負荷が無いと、ボケると思う)

・しかし処理する情報が多元化していなければ、負荷は相対的に低くなる。少なくとも一定の度合いを超える事は減る。余計に疲れることも減る。

・そもそも『登子』で言うような「(人間がやるのは非効率な)論理的思考エミュレータ、論理的処理用の仮想環境」を自身の内に起動する必要がなくなる。

・自分の中に述語がない、または少ない。これによって、少なくとも一定の度合いを超える処理が出現する事が無くなる。もしエラーの発生や、スピード・品質に問題が出る時が「疲れている時」「人間が一定の度合いを超えた論理的処理を行っている」時であったとしたら、その時がそもそも減るか無くなる。つまりエラーなどが起こりにくくなる事も有り得る。加えて、人間特有の超効率的な能力・ヒューリスティックである「感覚的思考」「無意識的思考」が、「言語」「論理的思考」のようなメモリを余分に食う処理によって邪魔されずに発現される、とも考えられる。

・述語がない、または少ないことによって、下記に近づける

登子、曰く

コンピュータに対する論理的な指令という目的があるため、プログラミングは、「論理的な仕事」であるというように思ってしまい、プログラミング作業の全部において、人間の側が論理的な思考でもって作業を行ってしまうのである。実は、プログラミングの作業のほぼすべてにおいては、論理的な思考というのはほぼ全くといって良いほど必要無い。

例えば論理的でない作業について考えてみる。音楽を聴いて「これは良い」と思ったり、映画を観て感動したりするといった作業は、論理的思考というよりも、どちらかというと直感的な作業である。音楽を聴いていて、「この周波数やパターンの音色が●●ミリ秒ごとに連続して現れる。これは良い」というようにいつも論理的に思考していては、音楽をちゃんと聴くことはできない。もっと直感的に、「なぜか上手く言葉で正確に論理的に表現することはできないが、この音楽は良い」というような知覚が発生する。

コンピュータのプログラムを読んだり、書いたりするといった、論理的な記述方式を対象とする作業でも、論理的な思考というのは、音楽を聴いたりするときと同様に、ほぼ全く必要無い。

論理的思考の放棄

直感的に、「なぜか上手く言葉で正確に論理的に表現することはできないが、この音楽は良い」

・以上のことから、述語が少ないまたは無いことは、論理的思考の放棄、即ち「よりエラーが少なく、素早く、高品質なプログラミング」を行える事につながるのではないか。

・直感的にシュバババババーっとコーディングしたとします。しかしどのみち書いた後に即座に(そして入念に)テストをしてしまうのですから、仮に間違っていてもすぐ直せます。そういうときに程々に論理的思考は必要になると思います(天才ではないので)。それに、ここでログを見たいから、そのためにxx行目にconsole.log(RPAならLogger.logも多い)と仕込もう!なんて”いちいち”考えないのではないでしょうか。先に手が動いていると思います。天才ではありませんから、小さくテスト・ログ確認をやらないと気が済みませんし、やらないと後で死ぬのですが、これで感覚の正しさが見れます。

ナンセンス

がんばって論理的思考をしてみましたが、ナンセンスでしょう?これ。能書き垂れるよりは設計してコードを書いたほうがよさそうです。

こんなふうに考えたところで、コードは書いたとおりにしか動きません論理的に考えようと考えなかろうと、動くコードは動くし、美しいコードは美しいし、メンテしやすいコードはメンテしやすいのです。

私が今やったのは、登子が賢すぎるが故に定義・解釈しなかった「論理的思考」についての定義や解釈です。当然ですが、コードは解釈したとおりには動きません。

人間のアーキテクチャの凄いところは、ある同じ行為を何回もやっていれば、その行為中のメモリの消費量が少なくなっていく事にあります。当たり前の極みですが、結局は単純に反復経験をして、後述する関数ポインタの獲得と保持をしなければなりません。どうやって述語を消すのかについても、反復経験と慣れによる関数ポインタの獲得と保持しかありません。これは多分感覚的思考の獲得方法とも言えるでしょう。まつもとゆきひろ氏も、プログラミングはスポーツと似ているとしています。自動化です。無意識です。

論理的思考の道具である言語というのは、基本的に後から付いてくるものです。こんなことを毎回やっていたら、疲れて遅くなってエラーが発生して発狂します。まず、論理パズルみたいなトリッキーな論理は、RPA領域では必要とされませんし、ニューラルネットワークがうんたらみたいな高度なアルゴリズムも必要とされません。保守性や他の人が見ることを考えても、極力使わないほうがよいでしょう。

経験量

さっき「ラーメン…お箸…!」が目標だと言いましたが、これが多分素早いプログラミングなのかなと思います。バグも織り込み済みになっているはずです。拡張すれば設計段階にも通じるでしょう。しかし当然ながら最初からこれが出来るとは思えません。当然、そのためには経験が必要なのですが、しかし登子は以下のように述べられています。

登子、曰く

文書化しないとblogには書けないので、その時点で情報の欠損が生じています。”単純な経験量・向き不向きの差” ではありません

論理的思考の放棄 コメント欄上から2つ目

とのことですが、確かに「単純な」経験量ではなさそうな気もします。「一定の経験量」以上の経験時間は実力とは関係なさそうですが、一定の経験量は必要だと思います。例えば、プレイ時間60時間と100時間の人がいたとして、前者のほうが強い・上手いというのは、ゲームだろうがなんだろうが、頻繁にあることです。この60時間者になるにあたっては、後に放棄されるべき論理的思考を行う段階が必要だと思います。

とはいえ、登子は小学生からプログラミングやってました系のハイパーエリート現役大学准教授兼経営者であり、そのような事実を前にしてしまうと、私のような凡愚は言語修得における年齢の要因の影響を論じたような研究を気にしてしまい、それが不安を引き起こしてしまう事は否めません。私のような登子が『登子』を執筆した年齢でプログラミングを初めたニワカからすると本当に。更に、最近話題のBlawnの開発者に至っては15歳です。

しかし絶望する必要はないのです。なぜなら、凡夫には凡夫に応じた形で、論理的思考の放棄のような境地が獲得され、それが凡夫に応じた形で発現されていくのでしょうから…スポーツ選手がそうであるように…

しかし、向き不向きが関係無いについては、否定はできません。

感覚的思考または最小限の論理的思考に至る

しかしですねこれ、やっぱり極端なところがあります。「放棄」といいつつも、「思考プロセス」は必要といった事も記載されています。そして放棄するためにはそもそも所有している必要がありますから、これは論理的思考の放棄のために論理的思考が必要な事を示唆していると解釈しています(後述)。

そこで「感覚的思考」「最小限の論理的思考」について、登子の言を紹介します。コメント欄に金言アリです。私にはこれが最重要としか思えません。

登子、曰く

何かを習得するために、最初は ”努力する” ことから入るのが良いのかも知れません。その結果、努力することによって習得することは不可能であるということに気付き、努力するのを止めることになります。このとき、大抵の場合は習得することを諦めるようなのですが、そうではなく、努力しないでその対象物の本質を知る、即ち自分の思考プロセスにおいてその対象物への関数ポインタを獲得して保持するというとても簡単な作業を行えば、習得したことになると思います

論理的思考の放棄

はい!!!!毎朝これを唱えて実務に臨めばOKです!以上!

「最小限の論理的思考で済ませる」「感覚的思考の獲得」にあたっては、これが必要です。関数ポインタの獲得と保持が必要です。私が書いた文章みたいな無駄な解釈(大げさな論理的思考)の大部分は不要です。しかし登子において「思考プロセス」と述べられている以上、やはり言語は必要でしょう。

単に、「こういう時はこうだよね」即ち「対象がXXならば、関数が保存されている神経上の0101を参照する!(いちいち言葉にしない)」に過ぎません。現代文みたいな無駄がありません。素晴らしい。いや現代文嫌いじゃないけど。これらを配列にしておけば、何かが入力された際に、すぐに関数が参照されます。XXなら神経の0101が参照されてしまうくらいの条件反射っぷりが良いのかも知れません。

先に言ったように、もし条件反射でミスがあったとしても、どうせすぐテストしてしまうんですから問題ありません。エラー内容に応じて関数そのものやアドレスが修正されたりしますし、そのうち「見るだけで違和感を感じる」ようになるはずです。最初はエラーだらけでも、(RPAの場合、神経に入力される対象物が限られてくるので)割とすぐエラーはなくなってきます。

参考…関数ポインタ

どうやって関数や関数ポインタを獲得するか、これはプログラミング領域で言えば、言うまでもありませんが、とりあえずやりまくって、できれば実務をこなすといいんじゃないでしょうか。そこで有用となる方法については、

で述べられています。メモリの空き容量を増やすと同時に、多分何回もやってればメモリの使用量も大幅減っていく(人間はPCとは違うから)んでしょうね。

最初は、対象物、即ち入力された値を正確に読み取る必要があって、その段階では登子が言うように「努力する」ことは必要だと思います。ただし、そこで必要なのは数学力とか数学的思考とか数学的言語を用いた記述能力ではなくて、単なる国語力ではないでしょうか(ニューラルネットワークとかは知らん)。最初はともかく、充分国語をやって、関数ポインタが獲得されて保持されているのならば、”毎回”国語の問題をやる努力は必要は無いんじゃないでしょうか?

もちろん、対象はしっかり読み取らなければなりません。しかし毎回”国語”をやって努力して読み取る場合、それは努力して毎回関数を直書きするような行為にも繋がりかねません。これはDRY原則に背くことはもちろん、それだけタイポによるエラーも招来する事も意味しています。場合によっては指差し確認的に”事前に”国語をやって確認する事も必要かもしれませんが、それすら関数ポインタ化して、

「アレだよアレ」

「ラーメン…!箸…!(カタコト)」

「アオいいよね いい…」

「ア…ア…」

で済ませられれば、面倒じゃなくて良いですよね。面倒嫌ですもんね。無意識にやっちまいましょう。別に自分の脳内やイメージで「アレだよアレ」ってやるだけですからね、ある動的な特定の条件下以外で「アレだよアレ」と言うのは推奨されないのは百も承知です。

この傾向はプログラマーの3大美徳「怠惰」に該当するでしょうから、多分これはこれで良いんじゃないかなと。このような観点に立つと、『登子』はプログラマーの3大美徳にも言及している、とも捉えられます。ああ…!偉大な書物であります。もちろん個人がプログラミングの段階に入ってからの話を言っているんですよ。

アオいいよね いい…

(※当然ながら入念に、そして小さいスパンでテストする必要はあります。なんというか自動化即ちRPA領域に居るとテスト自動化が気になってくるもんですね。)

関数ポインタの保持 自転車の乗り方

私は手続き記憶的に保持されると良いと思います。つまり、自転車の乗り方のように、身体で覚えろという事になります。実際やっててそう思います。乗ってりゃ覚えます。でもあんまりにもブランクがあるとフラフラします。このため、保持に関しても、定期的に(継続的に)やることが答えとなると思います。

なんでこんなわかりきった事を書くかというと、脳科学ブーム的に、そして最初に述べたように「プログラミングは論理的思考・数学的思考力が必要」とする流れが、『登子』の偉大なる啓示をSEO的に省く事に繋がったり、論理的思考を「信仰」する人々に脊髄反射的拒否感を植え付けかねないものだからです。(実績ある人物によって書かれていた事に感謝)

私は幸いにも、昨年2018年の10月くらいに、確かpaizaのDランクをやりながら、論理的思考連呼に疑義を呈し、「プログラミング 論理的思考 必要性」「プログラミング 感覚」とかそんな感じで(検索ワードを完全一致で覚えていない)でググって、確か『登子』が1ページ目に表示されていたから良いものの、今は上記のワードでは出てきません。これを知る人ぞ知る…としておくのも良いのかもしれませんが、なんとなく勿体ない気もします。

これは余計ですが、登子の教えを実践するにあたって補助的に有用かもしれないのは、プログラミングなる現実よりは静的な言語操作の能力について、その能力の根源を全て「脳」という要素に”いちいち”還元する事を控える事にあるのではないか、とすら思えます。

もう、能力の根源を問うことをやめて、即ち論理的思考がどうだのこうだの、脳とか神経とか身体とか言うことすらなくなってしまったような、無意識的な状態でやれると最高なんじゃないかなと。あらゆることが自動化されていきます。そのためにはやはり、やるしかないと。(興味があっていつの間にかコーディングしている人々は、やはり、最強でしょう)

論理的思考は、かなり上の方でしつこく述べたように、思考が(特に自然)言語によって行われる以上は言語でしかありませんが、この放棄や最小限を標榜、あるいは「信仰」するという事は、「脱・言語野」の含みがあると見てもおかしくない、のではないでしょうか。

「脱・言語野」の習慣化、まるで東洋思想のようであります。何やら心理学上の研究ではこのような結果もあったそうです。曰く

思考が大幅に減少

「悟りってどんな状態?」悟った50人に心理学的手法で詳しく聞いてみた結果とは TransTech Conferenceから

(私は科学的手法には無知であるし、この記事では科学を重んじましょうと言う気は無いし反科学と言う気も無いから、信憑性はわからない。そういうのがお好みな場合、WIREDあたりを見るとお手軽だと思います。シリコンバレーと禅とか色々出てくる)

臨済宗開祖の説く「言葉の毒性」 実践するほかない

当記事が布教であるとすれば、この「手続き記憶」「身体で覚えろ」は『登子』には直接書かれてはいないので、言わば教化活動です。

そして、このような教化活動を痛烈に批判したのが有名なニーチェであります。曰く「神は我々が殺した」。彼はイエス本人には好意的な評価を与えていますが、その教えを広めていった協会組織とその活動について狂ったように批判していますし、実際狂ってますし狂って死にました。更に当記事のテーマである禅の発展と受容に絶大な影響を与えた古の大賢人、老子(アイキャッチ画像)も「知る者は言わず言う者は知らず」と述べています。一休さんは臨済宗の僧侶ですが、そんな臨済宗の開祖は、このような市井のド素人による解釈行為を「口にウ●コを含んで撒き散らすようなもの」とまで述べています。自身の体験は偉大ですね。原典は偉大ですね。しかし言いたくて仕方ないので書いています。

当今の修行者が駄目なのは、言葉の解釈で済ませてしまうからだ。大判のノートに●●●●(※筆者注:過激な表現)坊主の言葉を書きとめ、四重五重と丁寧に袱紗に包み、人にも見せず、これこそ玄妙な奥義だと言って後生大事にする。大間違いだ。愚かな●(※筆者注:眼に障害のある人への差別用語)ども!お前たちは干からびた骨からどんな汁を吸い取ろうというのか。

世間には もののけじめもつかぬやからがいて、経典の文句についていろいろひねくりまわし一通りの解釈をでっち上げて[人に説き示す]ものがいる。これはまるで糞の塊を自分の口に含んでから。別の人に吐き与えるようなもの、また田舎ものが口づてに知らせ合うようなものでしかなく、一生をむなしく過ごすだけだ。

おれは出家者だと広言はしても、人に仏法を問われると、口を閉ざして答えがなく、眼玉はヤニの付いた煙突みたい、口は「へ」の字に結んだまま。こんなやからは弥勒の出現に逢っても、かなたの悪地に島流しになり、ついには地獄に寄留して苦しみをなめることになろう。

入矢義高 (訳) 1989『臨済録』 122p 岩波文庫

ああ、このままでは私は地獄に寄留することになるでしょう。過激ではありますが、このような立場を忘れずに臨みたいものです。「野狐禅」「沈黙は金、雄弁は銀」とは本当によく言ったものです。これと同様の話は、落合陽一氏が好きと言っている哲学者、荘子にもあります(参考リンク1)(参考リンク2)(参考リンク3)。明言していたTweetが見つからん…!

言葉を離れろ 禅的プログラミング(中国古典)

ということで、「身体」「無意識」と何やら余計な用語もとい解釈が出てきてしまいました。御存知の通り、プログラミングは思った通りや解釈したとおりに動くものではなく、書いたとおりにしか動かないものですから、このような解釈が出てきたという事は、既にこの記事も筆者も、上手くプログラミングをやるにはどうしたらいいのか?その答えは論理的思考の放棄にある、という教えから離れたという意味にも繋がります。…いや最初っからそうじゃねえか…ああ…!もはや背教者です。火炙りにされてしまいます。

しかし幸か不幸か、もはや私の下手な頭では処理しきれません。中途半端です。冗談抜きで気持ちが悪くなってきました。これの一部を書いて参考書籍を久々にパラパラめくってから眠りについたら久々に睡眠麻痺になりました。電子書籍だからとか関係ないよね?ああ…言語道断…!すばらしい言葉です…!ということで、そろそろシメに禅の話に移ろうと思います。

ここでは、ちょっとだけ「禅とはなんぞや?」についてふれて、これまでの内容を端的に示した、紀元前とか1200年くらい前の天才によって示されたプログラミングみたいな説話をいくつか紹介して終わります。そこでは解釈はほとんどしません。

さて、禅における最終到達地点とはどういうことでしょうか。これは論理的思考の放棄にも通じるので書いておきます、いささか過激ですが仕方ありません。先程、なぜ論理的思考の放棄がスピードが向上するかを話しましたが、その段で論理とか言語とかくどくどくどくど言いましたよね。で、論理的思考には対象を認識する必要があると言いました。

はい。ここからは例えです。サウナトランスや「ととのい」の話をしている、と思えば多分ハードルが下がります。

では仮に、認識を止めたとしましょう。すると対象も言語も発生しません。「ラーメン」「お箸」を分別することすらできません。発生していませんから、真っ更です。その真っ更を「根底条件」と言いましたが、この根底条件は根底条件だけに、絶対的なものです。絶対的とは、「対するものを絶している」事を言います。故に、何者にも依存する事無く存在できます。0であり続けます。

一方、ラーメンやお箸は、対するもの、即ち論理空間が、真っ更という根底条件があるからこそ、言語として存在できます。即ち根底条件に依存する事によって初めて存在できます。この点が相対的、「相(あい)対する」であります。1,2,3と増えたり、減ったりします。

ところで、論理空間はあくまで例えです。そもそも論理空間とは、あくまで「私が言語を扱える事」の根底条件でしかありませんから、言語を扱う主体である私は論理空間の外に立っています。だって、私そのものは言葉ではないんですからね(量子とか言わないで)。眼が私ならば、視野が論理空間です。視野に私は含まれていません。論理空間から私は見えません。

では眼、ヒトとしての私にとっての「真っ更」は何でしょうか?論理空間の中では、「量子」「宇宙物理」とか名の付く分厚いテキストを読めばわかるのかもしれませんが、私という生命が論理空間(言葉の世界)の外にいる以上、私の真っ更も論理の外にあります。このため、そもそも真っ更は論理の外にあるから言葉にできないとされています。沈黙しなければなりません。小田和正は正しかった。とはいえ、それでは何だかんだ言っても不便なので、いろいろな宗教が”仮の”名前を付けています。「空(仏教)」「道(老荘)」「万物の母(老子)」「毘盧遮那仏(華厳)」「大日如来(密教)」「神(汎神論、キリスト教神秘主義やイスラーム神秘主義)」「神秘」「存在」などなどだそうです。これらはそもそも認識できません。便宜的な仮の姿は、奈良に大きいのがありますね。

千の風になって

ここでは、私は存在している、ではなくて、存在が私している、になるそうです。意味がわかりませんね。わかり易い例で言うと、一時期「千の風になって」という曲が流行りましたが、かの楽曲の2番の歌詞に近いような感じです。

そして、この真っ更とか、千の風的な何かとか、仏や神と一体化するだとか、身体とか心とかそのあたりで「完全に理解した」みたいになる感じとか、これらを「認識」することが、最終到達地点だそうです。不立文字なので、「みたいになる感じ」といった表現になってしまいます。「認識」という意味では、矛盾でしょう。しかしイケメンや美女の方なら相補性とか言いながら付け加えられるはずです。教えて下さい。

ところで、サウナーの諸賢はその言わんとする所、現世における苦が滅した最終到達地点、即ち「ととのい」の境地について、「涅槃」「宇宙」「広がっていく」とか言っています。これは神秘主義者の発言にとても近いものと考えられます。そろそろ「千の風になったよ」とか言われだしてもおかしくはないと思うのですが、サウナーの皆さん、いかがでしょうか。
また、このサウナ論文(PDFリンク)によると、そもそも密教系の寺院では寺院風呂としてサウナ的な施設を用意していたそうです。一次出典までは辿り着けていませんが… まあサウナで例えるとわかりやすいと思います。

ちなみに禅が「マインドフルネス」の大元となったように、最終到達地点即ち悟りや無に至るには「意識的な気付き」が必要な場合が多いようです。論理的思考の放棄には、論理的的思考が必要なように。
そしてサウナとの違いは、それが永続する(らしい)ことです。

このような最終到達地点こそは、まさしく論理的思考の放棄が身体的に経験される、と言えるのかもしれません。しかしプログラミングでは登子も言うように、論理的思考はゼロには出来ないから、それを極力ゼロに近づける、「最小限の論理的思考」でやることが上手くやるにあたって肝要でありました。そこに余計な解釈などは、あってはなりません。

ではいい加減、その「最小限の論理的思考」が何たるかを示す、禅を含めた中国の説話を紹介して、この記事を終わろうと思います。それらはプログラミングっぽいですし、『登子』その1の終盤にも近い内容かもしれません。そして説話である以上、記述されていますから、論理の中ではあります。

(……これは余計です……1950年代後半くらいまでの理論物理学者、ボーアやハイゼンベルグ、シュレーディンガーなどは筋金入りの東洋思想マニアだったそうで、その考えの一部は量子神秘主義とも形容(リンク1)(リンク2)されたそうです。湯川秀樹も幼い頃から東洋思想に慣れ親しみ、中間子の発見については、最後に掲げる古典から多大なインスピレーションを受けたそうです。数学者で論理学者のスマリヤンも老荘思想を哲学として扱い、数々の問題を解決できる、としていたそうです。もちろんそういうのを嫌っているディラックやファインマンなどもいるそうですが、彼らも彼らで科学教だとの考え・自覚的なものもあったそうです(参考リンク)。何が言いたいかというと、いわゆる理系的とされる人と宗教的・求道的な記述というのは、最終到達地点を1つに求めたがってしまう・お纏めしたくなってしまう傾向があるという点では共通性があるというか、相性が良さそうな気がします。で、何でこんな事を書いているかと言うと、wikipediaの量子力学の記事のこの部分に、今まで散々述べた「無」の領域は記述できる手がかりがあるとか書かれてて、吐きそうになってきたからなんですね、こういう高度な論理的思考には学のない一般のド素人が触れるべきではありませんね、死に至りますね。摂取するにしても、エポケーしないとダメです…)

禅的プログラミングの例(中国古典)

普化はいつも街頭で鈴を鳴らしてこう唱っていた、「それが明で来れば明で始末し、暗で来れば暗で始末する。四方八方から来れば旋風のように応じ、虚空から来れば釣瓶打ちで片付ける」と。師は侍者をやって、普化がこう言っているところをつかまえて言わせた、「そのどれでもなく来たらどうする。」普化はかれを突き放して言った、「明日は大悲院でお斎にありつけるんだ。」侍者が帰って報告すると、師は言った、「わしは以前からあの男は只者ではないと思っていた。」

入矢義高 (訳) 1989『臨済録』 158p 岩波文庫

禅話:喫茶去(短くて読みやすい)

南泉和尚はあるとき趙州から、「道とはどんなものですか」と尋ねられ、「平常の心こそが道である」と答えられた。ついで趙州が、「やはり努力してそれに向かうべきでしょうか」と尋ねると、南泉は「いや、それに向かおうとすると逆に逸れてしまうものだ」と言われる。

「しかし、何もしないでいて、どうしてそれが道だと知ることができるのですか」と趙州。そこで南泉は言われた、「道というものは、知るとか知らないというレベルを超えたものだ。知ったと言ってもいい加減なものだし、知ることができないといってしまえば、何も無いのと同じだ。しかし、もし本当にこだわりなく生きることができたなら、この大空のようにカラリとしたものだ。それをどうしてああだこうだと詮索することがあろうか」。この言葉が終わらぬうちに、趙州はいっぺんに悟った。

無門は言う、中略
「趙州の方だって、たとえここで悟ったといっても、本当にそれが身につくためには、まだあと三十年は参禅しなくてはなるまい」。

西村恵信 (訳) 1994『無門関』 89p 岩波文庫

プログラミングは論理の中であり、「道」のような論理の外を求めてはいませんから、技術の習得に向かおうとすると、そこから逸れる、などといった事は無いはずです。しかし、論理的思考に向かうとうまくいかない(逸れる)、とは登子も言っていますし、私も散々述べたとおりです。

登子、曰く

何度テストしても、後になってバグが出てきてしまうこともある。論理的に考えれば、上記のような正確なプログラミング作業の後には若干の誤りも無いはずなのだが、これは論理的な処理ではないので、なぜバグが発生してしまうのかは、論理的には分からない。これは仕方が無いものと考えて、バグを直せば良い。それでも、普通のプログラマーが論理的な思考でプログラムを書く際と比較して、バグの発生件数は大幅に減り、楽になる。

上記のような方法は、恐らくプログラミングだけでなく、色々な物事の設計や、文章の執筆、自動車等の運転などおおよそほとんどの作業で活用することができるのではないかと思う。

しかもこの方法は、一切努力をしたり苦労したりする必要が無く、とても気楽である。
なお、何人かの、作業効率が良いコンピュータ関係のことをやっている人と話したところ、大体は上記のようなことを (表現は異なるが) 普段から実践しており、それによって、平均的なレベルと比較して遥かに高い能力で作業をしているようである。

論理的思考の放棄

論理的には分からない。変に解釈していません。

登子、曰く

何かを習得するために、最初は ”努力する” ことから入るのが良いのかも知れません。その結果、努力することによって習得することは不可能であるということに気付き、努力するのを止めることになります。このとき、大抵の場合は習得することを諦めるようなのですが、そうではなく、努力しないでその対象物の本質を知る、即ち自分の思考プロセスにおいてその対象物への関数ポインタを獲得して保持するというとても簡単な作業を行えば、習得したことになると思います

論理的思考の放棄

画像1

“Mel Weitsman1” by Hozan Alan Senauke 出典:ウィキメディア・コモンズ (Wikimedia Commons) 

師が僧に問うた、「どこから来たか。」僧はすぐに一喝した。師は会釈して僧を座らせた。僧はもたついた。師はすぐ打った。

師は僧がやって来るのを見ると、払子(※筆者注:上の画像)をさっと立てた。僧は礼拝した。師はそこで打った。

また別の僧がやってくるのを見ると、やはり払子を立てた。僧は見向きもしなかった。師はやはりその僧を打った。

入矢義高 (訳) 1989『臨済録』 152p 岩波文庫

キリが無くなるので次で終わります。包丁の語源です。ちなみに「宇宙」もこの書が由来とされるそうです。最後までお読み頂きありがとうございました。

庖丁が、文恵君のために牛を料理したことがあった。手でさわり、肩を寄せ、足をふんばり、膝立てをする彼のしぐさのたびに、さくさくばりばりと音がたち、牛刀の動きにつれてざぐりざくりと響きわたる、それがみな音律にかなって快よく、[殷の湯王の時の名曲]桑林の舞楽にも調和すれば、また[堯の時の名曲]経首の音節にもかなっていた。

文恵君は[それを見てすっかり感嘆し、]「ああ、見事なものだ。技もなんとここまでゆきつけるものか。」といった。庖丁は牛刀を手から離すと、それに答えた、

「私めの求めておりまするものは道でございまして、手先の技より以上のものでございます。私めがはじめて牛の料理を致しましたころは、目にうつるものはただもう牛ばかり[手のつけどころも分かりません]でしたが、三年たってからはもう牛の全体は目につかなくなりました。このごろでは、私めは精神で牛に対していて、目で見ているのではありません。感覚器官にもとづく知覚は働きをやめて、精神の自然な活動だけが働いているのです。

天理(すなわち自然な本来の筋道)に従って、[牛の皮と肉、肉と骨の間の]大きな隙間に刀刃をふるい、大きな空洞に沿って走らせて、牛の体の本来のしくみにそのまま従ってゆきます、支脈と経脈がいりくみ、肉と骨とがかたまったような微妙なところでさえ、試し切りをするようなことはありません。まして大きな骨の塊ではなおさらです。腕のよい料理人は一年ぐらいで牛刀をとりかえていて刃こぼれが来るのですが、たいていの料理人はひと月ごとにとりかえながら[骨につき当てて]牛刀を折ってしまうのです。

ところで、私めの牛刀は十九年も使っていて数千もの牛を料理してきましたが、その刃さきはまるでたった今砥石で仕上げたばかりのようです。あの骨節というものには隙間があり、牛刀の刃さきというものにはほとんど厚みがありません。その厚みのないもので隙間のあるところに入っていくのですから、まことにひろびろとしたもので、刃さきを動かすにも必ずゆとりがございます。だからこそ、十九年も使っているのに、牛刀の刃さきがたった今砥石で仕上げたばかりのようなのです

けれどもそれにしても、筋や骨のかたまったところに来るたびに、私はその仕事のむずかしさを見てとって、心をひきしめて緊張し、そのためには視線は一点に集中し手のはこびも遅くして、牛刀の動かしかたは極めて微妙にいたします。やがてばさりと音がして肉が離れてしまうと、まるで土くれがもとの大地に落ちたときのよう [に、ことさら切り離したという形跡が残らない見事さ]なのです。牛刀を手にひっさげて立ちあがり、四方を見まわしてしばらく去りがたく佇んだうえで心中に満足し、牛刀をぬぐってそれを鞘に収めるのです。」

文恵君はいった、「すばらしいことだ。わしは庖丁の話を聞いて、養生(――すなわち真の生きかた)の道を会得した。」

金谷治 (訳) 1989『荘子 第一冊 内篇』 94p 岩波文庫

メンバー募集中!

ディップ次世代事業統括部では、一緒に働くメンバーを募集しています。
ご興味がある方、ぜひカジュアルにお話しませんか?下記リンクより、ご連絡お待ちしております。

Wantedlyのアカウントをお持ちでない方

Wantedlyのアカウントをお持ちの方はこちらからの方がスムーズです!

シェアもしてもらえるととても励みになります!