dotkuwaの日記: 問題は文脈自由の貌をしていない 2
昔、河口のそばのサイクリングロードを走っていたら、
カモメがこちらの目の高さで飛んで来て、
「ずいぶん目つきが悪いな」と思った事が有りました。
最近、見知ったツバメが、通勤中の駅前の自分の目の高さまで、
緩降下で降りてきて、緩上昇で戻っていきましたし、
そのツバメが日本を去る際、ひらひら飛んでいたのが、
自分の顔の横でいきなり急加速をして、去っていきました。
(その際、ライトセーバーを振った様な音が聞こえました。
初めは「危ない奴だな」と思いましたが、
後から考えると、別れの挨拶だったのかなと思いました。)
また、自分では無いですが、ハトが、歩いている人と
同じ目の高さに飛んで来ているのを何度も見たことが
有ります。
鳥が同じ目の高さで飛ぶのは、もしかすると、
・仲よくしよう!
という意思表示なのかも知れません。
なぜ、鳥はそうなのか? 想像でしか無いですが、
・三次元の世界は、それだけで、複数の文脈が有り、
同じ目の高さにしないと解り合えない
からでは無いでしょうか?
前に、
・(プログラミングで扱うような)問題には、第一原理が
ないのでは?
と申し、
・それはおかしい、それでは同じ風景が、別の人には全く別に
見えてしまう。
とレスをいただきました。
それは、
・自分にも問題理解の誤解が有り、問題を文脈自由だと
思い込んでいたが、
・問題は文脈依存であった
ならば、辻褄が合います。
もちろん、問題のごくごくごく一部は文脈自由になる
でしょう。
(クラサバシステムにおける、個々のSWハブなど)
しかし全体を見ると文脈依存の貌をしていると思います。
だから、関数型(=文脈自由のクラス)はダメ
(良い様に言われていて、確かにそう思えるが、実際にやって
見ると、何の成果も得られない)なのでしょう。
木のブランコの風刺画も、問題が文脈自由だとの思い込み
からならおかしいですが、もし、問題が文脈依存だったと
したなら、なんてことは有りません。
具体的にどうするか? (スコア:1)
プログラミングの初手の着想の仕方は、誰に聞いても
教えてくれません。
せいぜい「とにかくテストを書け」とか、着想とは
ほど遠いアドバイスが受けられるのみです。
これは、
・全世界で、初手の着想の仕方のアルゴリズム(1つ1つ
見ながら確認可能)が有るのにも関わらず、
それを知っている誰も(けちで)教えてくれない。
のではなく、
・初手の着想の仕方のアルゴリズム(1つ1つ
見ながら確認可能)は(原理的に)無い。
と考えるべきでは無いでしょうか?
文脈依存の問題は、正規言語の問題よりは簡単でしょう
けれど、困難であり、なぜ困難かと言えば、
見る(アルゴリズム的に1つ1つ確認する)事が
出来ない問題のクラスだからでは無いでしょうか?
そうなると、
・初手の着想は「見ないで考える」より無い
のでは無いでしょうか?
#無理やり見ようとすると、眼がチカっとして、
#頭痛がするのがオチです。
将棋のラノベで、盤面を複数思い描ける人間が出て
来ますが、同じことをプログラミングでも、
初手の着想の段階では、それをするより無いのでは
ないでしょうか?
また、出来ているプログラミングを解読する
時も、「見ないで考える」必要があるのでは無いで
しょうか?
出来ているプログラミングを初めに見るのは、
自分で作るプログラミングの初手の着想を思いつく
のと同等だと思われるからです。
いかがでしょうか?
スティグマ(爪痕) (スコア:1)
『初手の着想は「見ないで考える」』とは何を言っている
のか?
ですが、
・プログラムを書く事は、どんな些細なプログラム断片でも
将来を拘束するスティグマ(爪痕)に成り得る。
いや、成る。
・特に、クラスやインターフェースといった、
「境界付けられた」プログラミングの要素を用いると、
将来を拘束し易い。
性質が嫌なのが、言った発端でした。
-------------------
他分野、例えば会社で物を買った時の「処理」
(いわゆる仕分け)ですが、会計の勉強をした事が無い
自分が付け焼刃でやろうとすると、9割5分はしくじります。
では、仕分けを上手く出来る、会計の知識の有る人を
見ていると、着想の仕方のアルゴリズム(1つ1つ
見ながら確認可能)が有るのかというと、
有りそうに見えません。
もし、その様なものが有るなら、一般の人に教えて、
業務分担が出来るはずです。
・一般的な原則を習う
・それに則り、審査する。その際、その人は
「見ないで考えている」!!!
・別に、その様なやり方は、飛びぬけてすごい人が
出来る訳では無く、年に万人単位で出来る様になっている。
のは事実だと思います。
会計という専門分野がそれで通り、プログラミングという
専門分野は、徹頭徹尾、1つ1つ見ながら確認可能で
無ければならないというのは不自然です。
-------------------
ただし、もしかすると、これも「モダン」な考えが発端と
なった、理論限界を超えたオカルト的な「改善」がもたらした、
・見た目だけの困難さ
なのかも知れません。
・テストを書け
でなく、レガシー的に、
・ユーザーインターフェースを書け、チェックも書け
・ロジックは「クリックボタン押下」イベントプロシージャに
ちょこちょこっと書くのから始めて、
その後、リファクタリングでもなんでもすれば良い。
・出来るのであるならば、上流工程を気取って、
プログラミングで無い、自然言語を使った設計書を書くのも
良いと思う。これでも『初手の着想は「見ないで考える」』
を達成できると思う。(ただし大変)
で良かったのかも知れません。
とにかく、バブル後に表れた「モダン」は、
全て眉に唾を付けて、考える事が必要かも知れません。
それらは、
・理論限界を超えたオカルト、エセ科学
である可能性が、かなり有るからです。
それらを提唱している人間が「レガシー」と言って
良くない物扱いしているものこそ、最終的な中庸なのかも
知れません。