構造化プログラミングが、混沌だったフローチャートに秩序を与えた【プログラミングパラダイム・シフト2】#65

  Рет қаралды 168,385

ゆるコンピュータ科学ラジオ

ゆるコンピュータ科学ラジオ

Күн бұрын

「プログラミングパラダイム・シフト」シリーズ第2回。「構造化プログラミングはカオスに秩序をもたらした」「3つのルールだけで絡み合ったヒモが解ける」「機械中心主義から人間中心主義へ」など、構造化プログラミングの威力を語っています。
【サムネイル画像】
フローチャートは『RUNCIBLE-algebraic translation on a limited computer』より引用
【目次】
0:00 つまらないタイトルを扇情的に
1:27 機械語とC言語のたとえ
3:27 機械語はジャンプしまくっている
13:34 カオスに秩序をもたらしたパラダイム
20:04 ダイクストラもルターも不本意にバズった
23:17 3つのルールで書くだけ
33:48 必ずしも進化することがいいワケではない
46:07 機械中心主義から人間中心主義へ
49:07 次回からが本番
【参考文献】
○コーディングを支える技術
amzn.to/3TscsJp
○オブジェクト指向の考え方 5th Edition
amzn.to/3lpDaFQ
○WEB+DB PRESS Vol.132
amzn.to/3JtYkuv
○プログラミング言語大全
amzn.to/3yNiYRf
○はじめてのLisp関数型プログラミング
amzn.to/3yNj3V3
〇RUNCIBLE-algebraic translation on a limited computer
dl.acm.org/doi/10.1145/368481...
動画内のフローチャートの引用元
○息吹
amzn.to/40mP1E0
【サポーターコミュニティ加入はこちらから】
yurugengo.com/support
【親チャンネル:ゆる言語学ラジオ】
/ @yurugengo
【フランチャイズプロジェクト:ゆる学徒ハウス】
/ @yurugakuto
【おたよりフォーム】
forms.gle/BLEZpLcdEPmoZTH4A
※皆様からの楽しいおたよりをお待ちしています!
【お仕事依頼はこちら!】
info@pedantic.jp
【堀元見プロフィール】
慶應義塾大学理工学部卒。専門は情報工学。WEBにコンテンツを作り散らかすことで生計を立てている。現在の主な収入源は「アカデミックに人の悪口を書くnote有料マガジン」。
Twitter→ / kenhori2
noteマガジン→note.com/kenhori2/m/m125fc452...
個人KZfaq→ / @kenhorimoto
【水野太貴プロフィール】
名古屋大学文学部卒。専門は言語学。
某大手出版社で編集者として勤務。言語学の知識が本業に活きてるかと思いきや、そうでもない。
Twitter→ / yuru_mizuno
【姉妹チャンネル】
◯ゆる音楽学ラジオ( / @yuruongaku )
◯ゆる民俗学ラジオ ( / @yuruminzoku )
◯ゆる天文学ラジオ ( / @yurutenmon )
◯ゆる書道学ラジオ ( / @yurushodo )
◯ゆる生態学ラジオ ( / @yuruseitai )
◯ゆる哲学ラジオ (open.spotify.com/show/7t8NNVq...)
#プログラミングパラダイム・シフト #ゆるコンピュータ科学ラジオ_プログラミングパラダイム・シフト

Пікірлер: 300
@YuYuYu-Yu
@YuYuYu-Yu Жыл бұрын
「Aは有害である」(A considered harmful)というタイトルそれ自体もバズって、「~は有害である」というタイトルの論文が大量に出て来て、やがて「『~は有害である』は有害である」("Considered harmful" considered harmful)という論文まで出て来たらしい。
@pasolinipier2291
@pasolinipier2291 Жыл бұрын
「買ってはいけない」に対する「『買ってはいけない』は買ってはいけない」みたい。
@yurucom
@yurucom Жыл бұрын
めちゃくちゃいいうんちく!!
@haruya.H
@haruya.H Жыл бұрын
9割本、本質本みたいなのがいつの世にもあるんですね…
@ken_to_delicat
@ken_to_delicat Жыл бұрын
黒島先生が収集するやつー!
@tork1a11e
@tork1a11e Жыл бұрын
『環境問題のウソ』って本が流行ったあと、『環境問題のウソのウソ』って本が出たのと似たものを感じる。
@tochan2520
@tochan2520 Жыл бұрын
12:35 このフローチャート見て「美しい」「なんてわかりやすいんだ」と思っていた世代です。懐かしいです。
@kkk0kkk2
@kkk0kkk2 Жыл бұрын
ボーッと聴いてたら「鼻白らむ」が「鼻血RAM」に聞こえて 「鼻血RAM」と「鼻血ROM」で議論してる二人がいるのかと思った。
@user-id6yv2nh5m
@user-id6yv2nh5m 4 ай бұрын
ボーっと読んでたら「鼻白らむ」がVtuberの名前に見えて また変なキャラクターを作り出した二人がいるのかと思った
@kensuketomioka2321
@kensuketomioka2321 Жыл бұрын
だいたいどの言語でも、 変数と関数の定義に加えてif for while の構文が書けたら最低限使えるけど、それが偶然じゃなくて、あらゆるフローチャートを記述できると数学的に証明されてるのは面白いな
@J_CHICKEN137
@J_CHICKEN137 Жыл бұрын
ゆるコンピュータ科学ラジオあるある ・脇道、脇道の脇道と逸れていっても、ちゃんと階層を把握していて正しく戻ってこれる堀元さん ・goto文で台本ブレイクする水野さん
@mentosukoala
@mentosukoala Жыл бұрын
gotoで無理やり戻ってる気もする
@unknown00kuv
@unknown00kuv Жыл бұрын
構造化プログラミングが「自由度の高いはずのジャンプ命令をあえて禁止したことで、かえってプログラミング言語のパラダイムシフトに発展した」のも面白いけど、 21:34 の水野さんの話を引用して「ジャンプ命令を禁止することを実は多くの人々も望んでいて、それが広まる土壌があった」から受け入れられたというのも面白いところだと思う。
@forestbutter3332
@forestbutter3332 2 ай бұрын
プログラミングをやっている身としてはgo to等のジャンプは極めてスパゲティコードになりやすい 結局のところ、コードを読む時に人は上から下へ読むと言う方向性がジャンプ禁止したいと言う欲求の根源だと思う
@user-jh7kp7vg6h
@user-jh7kp7vg6h Жыл бұрын
自分は情報よりの人間なのですが、こうやってある程度言語学の知見がある人の視点が面白すぎて無限に見れる
@lonestar930
@lonestar930 Жыл бұрын
義務教育にプログラミングを入れると論理的思考力が身につくと言われる理由を、 プログラミング素人の水野さんが初見でコンピューターサイエンティストより上手く説明できていることに皮肉を感じる。
@yu100nabeyan
@yu100nabeyan Жыл бұрын
江戸川ダイキストラ「go toは害悪だから〜」 はただのコロナ政策批判で笑う
@user-fu7ps7ix7u
@user-fu7ps7ix7u Жыл бұрын
名前からバシバシ来る泡沫政党のヤバい奴感
@user-zd2sq9bj9p
@user-zd2sq9bj9p Жыл бұрын
水野さんに一度C言語入門をしてもらって、世間で難しいと言われるポインタとかをどう理解するか、各概念にどう反応するかを見てみたいな。堀元さんの説明の仕方にもよるだろうけど、プリンとか言い出さない限りサクッといけそう 個人的な宗派としてはRustに入門してもらいたいが
@tenkawakiirobou
@tenkawakiirobou Жыл бұрын
持ってる情報と閃きだけで構造化プログラミングのほぼ回答を持ってくるとは…!
@SKYLINE4R35
@SKYLINE4R35 Жыл бұрын
こういう番組の登録者が5万余りいるのが、昔々趣味でマシン語書いてた身としては嬉しい。 絶対番地にジャンプする大きなデメリットの一つは、デバッグ後に処理を追加することになったらそれ以降の番地が一斉にずれること。その修正が大きな手間だった。(処理が減った場合は NOPなど「何も処理しない命令」を埋めたりして一時しのぎしたり、そうすると貴重なメモリを無駄遣いすることになったりとか) 何もかもが皆懐かしい・・・
@SonodaMai74
@SonodaMai74 Жыл бұрын
相対ジャンプを使えば多少は・・・修正箇所が減る・・・ うん、なつかしい;; JP と JR でしょうか。 < Z80が大好きだった
@SKYLINE4R35
@SKYLINE4R35 Жыл бұрын
@@SonodaMai74 私もZ80(PC-6001)で育ちました。そもそもCPUという「計算機」でゲームができるのがなぜなのかわからなくて、市販のゲームを全部「レポート用紙にハンド逆アセンブル」したのが私の基礎知識の一部になってるのは間違いない。それを全部解析して理解したときは仕組みに激感動した。今も忘れない思い出。
@user-tp9hz4fc2p
@user-tp9hz4fc2p Жыл бұрын
息吹を読んで、 「思い出は全部記憶しているけどね、記憶は全部は思い出せないんだ」 という言葉の深さを改めて感じましたw by高校生
@user-tp9hz4fc2p
@user-tp9hz4fc2p Жыл бұрын
「すべてがFになる」より引用
@user-ry5tn6vs2l
@user-ry5tn6vs2l Жыл бұрын
「制限すると表現の幅が増える」 「制限するとできることが増える」って言うのは、数学でも同じですね〜 一般の位相空間を距離空間に制限すると、距離が使えるのでできることが増えるんですよね。
@US-wb8yp
@US-wb8yp Жыл бұрын
抽象的な議論は普遍的だけど言える内容は少ない。 具体的な話に制限すると限定的だけど言えることが多い。 みたいなことですかね。 他にもたとえば抽象的な集合論で議論できる命題は少ないけど、より具体的に群、体、ベクトル空間って話を制限してくと言える命題は多くなる。言葉をお借りすると、できることが増える
@user-uh5gb5fg2i
@user-uh5gb5fg2i Жыл бұрын
C言語は、今でこそ「マシン語の次レベルの言語の代表格」みたいな扱いだけど、 それは「鳥類は代表的な恐竜」みたいな話で、登場当時のC言語はいっぱいあるうちの1つに過ぎなかったんだよな。
@minami_alinko
@minami_alinko Ай бұрын
>今でこそ「マシン語の次レベルの言語の代表格」 「今でこそ」……1980年代半ばにはもうそんなじゃなかったですか? 高速化が必要なところでは適宜C言語からアセンブラに切り替えてコードを書くということがしやすかったからですね。
@KeppyNaushika
@KeppyNaushika Жыл бұрын
18:16 「GoTo文に代わる一手法」→「GoTo文は有害である☆」は草
@levokrool2667
@levokrool2667 Жыл бұрын
これはゆる言語ラジオのゲーム化の伏線回ですね
@user-po1pd4or8m
@user-po1pd4or8m Жыл бұрын
初めてこのチャンネルを見ましたが、こういうのを待ってましたという感じです! 本職SEですが、ITの勉強ができてゆるく家事とかしながらラジオ感覚で聞けるの無いかなと思っていました。普通に解説している動画とかはあると思うんですけど、講義形式の動画はよし勉強するぞと腰を据えないといけなくて結局見なくなっちゃうんですよね。 例え話や脱線、いいと思います。色んな知識が組み合わさって楽しく聞けるというのがこのチャンネルの良いところだと思うので、むしろ自然言語に例えたり、関係のないSFの話をするくらいのほうがラジオ感覚で気楽に聴けると思います。 関係ないですが水野さんの声は後藤達也さんに似ていますね。
@user-fn3xo1pl9n
@user-fn3xo1pl9n Жыл бұрын
プログラミング的思考とかプログラミング教育とかやってる人たちが「順次処理、条件分岐、繰り返し」とよく言ってるのは、このダイクストラさんの話がベースになってるのか。
@keykay43
@keykay43 Жыл бұрын
学生の頃、プログラミングをやってる友人が自主ゼミのとき数学でインデントを使ってましたね。長い証明のときは「Aを証明するための、補題Bを証明するための、場合b1のときの……」みたいになって、何の証明してるんだ?になりがちなので、何にせよ階層性を意識するのは人間の認知にあってるのかも
@abu48823
@abu48823 Жыл бұрын
そしてジャンプ地獄から解放された人類は今度はネスト地獄に悩まされるのであった…
@k_madoka
@k_madoka Жыл бұрын
今回もおもしろかったです
@damasu_tarokaja
@damasu_tarokaja Жыл бұрын
Dijkstraは表記揺れでダイキストラとも書かれることに注意
@multifeb13
@multifeb13 Жыл бұрын
「カノッサの屈辱」でフジテレビの深夜番組を思い出す世代
@user-gm1zn5og2k
@user-gm1zn5og2k Жыл бұрын
「やあ皆さん、私の研究室へようこそ」懐かしいてすね。学生のころ、池袋でカノッサの屈辱展をやっていて、見に行ったのを覚えています。
@mudaso-heavy-user
@mudaso-heavy-user Жыл бұрын
楽しみに待ってました
@alwaysoutofbase5255
@alwaysoutofbase5255 Жыл бұрын
出てくる喩えが極めて正確ですね。お二人の聡明さが滲み出ている。
@brokenRadio1219
@brokenRadio1219 Жыл бұрын
待ってたました
@user-hk9uk4hb1d
@user-hk9uk4hb1d Жыл бұрын
最後のまとめの部分から、最近はやりのChatGPTも元を正せば よりナチュラルな自然言語を機械語に変換して実行されているあたり、 より機械中心主義から人間中心主義になったとも考えられて面白い動画でした
@rayfiyo
@rayfiyo Жыл бұрын
38:50 堀元が『息吹』にgotoした瞬間
@TAKOYAGl
@TAKOYAGl Жыл бұрын
息吹面白そうだったので他の欲しかった本に混ぜて早速買いました!
@user-wz1st7ky8j
@user-wz1st7ky8j Жыл бұрын
次回のオブジェクト指向楽しみだな🙆‍♂️
@andanish3009
@andanish3009 Жыл бұрын
次回の堀元さん「オブジェクト指向はマニュファクチュアだ!」
@256yayo
@256yayo Жыл бұрын
自由を縛ると、楽になったり簡単になったりすることは結構ありそう。
@furusatonotkokyou
@furusatonotkokyou Жыл бұрын
AからBの最短経路の道の一部を取り壊すことで、仕方なく多少遠回りの道にみんながバラけてくれるから、結果渋滞が減った(逆に道を作るを渋滞が増えた)とかある …ちょっと違うかな
@RIAFeed
@RIAFeed Жыл бұрын
Railsなんかそうですね、細かいルールに従えばフレームワークがよきに計らってくれるやつ。ルールから外れると地獄ですが。
@yu100nabeyan
@yu100nabeyan Жыл бұрын
何してもいいよ、何描いてもいいよって言われるのが一番困りますね
@keramischmond
@keramischmond Жыл бұрын
「夕飯何でもいいよ」が一番困りますもんね 「鶏肉の消費期限が今日で、人参と玉ネギの半端があって、冷凍ブロッコリーが袋に半分……よし今日はシチュー!」みたいに制限を加えていってメニューを決める日々です
@furusatonotkokyou
@furusatonotkokyou Жыл бұрын
@@keramischmond 今ふと思ったんですけど、晩飯何がいい?って聞かれてる方も自由度高すぎて、何でもいいって答えてしまうのかと… 晩飯、〇〇と◇◇と△△どれがいい?みたいに聞くと答えてくれそう
@sugar_day
@sugar_day Жыл бұрын
マシン語の処理はゲームブックに似てるなと思いました。
@shigecky
@shigecky Жыл бұрын
「宗教改革」 待ちに待った「プリン」の対義語が出た
@user-kl4qy8jb9m
@user-kl4qy8jb9m Жыл бұрын
興味深いですね。確かに図みたいにブロックを見ていることに気付きました。ほとんどのエディタでインデントブロックの補助線が出ますし、2次元的な情報として捉えようとされていますね。ところで次回出てくるかもしれないJavaは goto を予約語としているけどなんもなし、という形で封印していますね。昔、おじさんプログラマがオブジェクト指向もよく分かんねえしgotoも使えねえしよぉみたいなことを言っていたのを思い出しました。あのおじさんもgotoは害悪だと深層では思っていたのだろうか
@ryoryo9239
@ryoryo9239 Ай бұрын
39:32 テッドチャンのその物語、その対比を読んでみたいです。歴史を記録したから、負けた国は戦争の戦後の孫までも、戦勝国を恨んだり、戦勝国はずっと上から目線になるのでは?と思ったりしてたので、それをすでに描いた物語があると知ってとても読んで見たくなりました!!
@user-nc9xb4gx8p
@user-nc9xb4gx8p Жыл бұрын
待ってた
@user-hp7fd9vr9b
@user-hp7fd9vr9b 5 ай бұрын
深掘をちゃんと手偏で書いてくれている堀元さんに好感が持てる
@haruka_52
@haruka_52 Жыл бұрын
16:41 dijkstraという姓は、北海沿岸のドイツとオランダにまたがる地域を治めていたフリースラント由来の名前らしいです。 で、エドガー・ダイクストラはどちらかというと、オランダ人とのことです。
@miturusatozaki5490
@miturusatozaki5490 Жыл бұрын
オブジェクト指向言語へのパラダイスシフトは、個人経営で仕入れから陳列、会計まで一人で何でもやってた八百屋さんが、スーパーマーケットに変わってそれぞれの業務を専任の担当者がこなす様になった感じだと思う。 忙しい部署に人を増やしたり、暇になったら簡単に首切れる様になった。 あと他(違うプログラム)からも専門性を持った人を即戦力としてリクルートしやすくなった。
@miturusatozaki5490
@miturusatozaki5490 Жыл бұрын
Afterism発現。 蒸気機関(マルチスレッド)の普及による、仕事の分業化(オブジェクト指向)。 つまり、オブジェクト指向は産業革命だ! エウレカ!
@NekonyanDesu
@NekonyanDesu Жыл бұрын
機械語のジャンプは昔よくあったゲームブックみたいだな。RPGがテーマだったりする子供向けの本で この行動Aをするなら何ページに飛ぶ。この行動Bをするなら何ページに飛ぶってのがたくさん書いてあって物語が分岐する。 機械語を知らないんだけど、実際には機械語は命令自体もアドレスで表されるのかな。しかも2進数だったり16進数で書くのかな?かなり大変そう。
@user-kl7hd2vv3e
@user-kl7hd2vv3e Жыл бұрын
アドレスに命令が入ってる感じ その命令を16進数表記とかで記す感じだね
@NekonyanDesu
@NekonyanDesu Жыл бұрын
​@@user-kl7hd2vv3e 教えてくださってどうもありがとうございます。とても難しいんですね
@laystorin123
@laystorin123 Жыл бұрын
私の頭の中では 処理を1つの流れの中で全部やっていたのが初期のプログラミング 処理をまとめてオブジェクト化して個別処理するのが1つのパラダイムシフト そのオブジェクトがマルチタスクで並行して動くのが2つ目のパラダイムリスト 最後に、各処理が別マシン(DB、サーバ、クライアント等)で分割処理するのが現状ですかね
@satoru3893
@satoru3893 Жыл бұрын
キリスト教はCSの例えに絶妙に親和性が高くてオモロい
@user-nh9xk1rc8u
@user-nh9xk1rc8u Жыл бұрын
水野さんは1次元的に表現するしかないというけど 本の目次も2次元的表現してる
@cdr6281
@cdr6281 Жыл бұрын
目次を音読してみてください。適切なポーズを取らないと読めないはずですよ。それがインデントの代わりです。
@moroha10085
@moroha10085 Жыл бұрын
今Rustの学習してるけど、このパラダイムシフトってRustと一緒だ。選択と反復の概念を導入して可読性を上げたのがc言語。所有権と借用の概念を導入してメモリ安全性を上げたのがRust。
@minami_alinko
@minami_alinko Ай бұрын
>選択と反復の概念を導入して可読性を上げたのがc言語 ちがいます。 選択や反復はC言語以前の高級言語にはとっくに導入されてました。 (C言語よりよほど古いALGOL60にもFORTRAN IVにも当然ある) 可読性はC言語より前に生まれたPascalやCOBOLのほうが上です。 C言語なんてすぐ読みにくくなる言語だからこそ、「国際難読化Cコードコンテスト」とい奇祭があるくらいで。 当時のプログラマには「ソフトウェアの開発技法」というものがまとまっていなかったんですよ。それを、エドガー・ダイクストラやハーラン・ミルズがそれぞれ別個に「構造化プログラミング」を提唱しました。 一般的な”構造化プログラミング”の理解のされかたはミルズのほうに近くて、ダイクストラが提唱したのはもっと範囲が広いものでしたが、ごっちゃにされた。 ダイクストラにとって、goto悪玉論より「構造化プログラミング」が意図しない形でバズり倒したことのほうが気にくわず、後年、ダイクストラはミルズと(Pascal開発者であり「Go To Statement Considered Harmful」に題名を差し替えた犯人でもある)ニクラウス・ヴィルトへの恨み節を書いています。 パラダイムシフトが起きたとすれば「プログラミング言語」ではなく「コーディング手法の確立」なんですよ。
@user-ff7sz4ql5p
@user-ff7sz4ql5p Жыл бұрын
21:32 ごく最近のバズりの一つに いわゆる“ひろゆき現象”があるが、その是非はともかく この現象も現状に不満を持った人が多くいたという土壌があったからこそ これほど大きなブームにまでなってしまったんだろうと思う
@gutsnosada
@gutsnosada Жыл бұрын
近い構造だけど少し違う結論を堀元さんがnote(とどっかの雑誌のインタビュー)で話してた気がする ひろゆきとビジネス書は同じ目的で消費されている、みたいな
@jukusato
@jukusato Жыл бұрын
昔、アメリカの専門雑誌を読んでいる先輩が「プログラムはGOTO文を使ってはいけないんだ」と言っていて、「GOTO文を使わなきゃプログラムは作れないじゃないか!何を言ってるんだ?」と思いました。それから数年たち、日本でもGOTO文なしプログラムは当たり前になりました。
@unun2621
@unun2621 8 ай бұрын
プログラミング学び始めのほんとに最初のころに、なんでここに戻るっていう書き方はできないんだ!って思った記憶があったことを思い出した 今はすっかり染まってしまったことを考えると、GOTOはなくても問題ない余計な表現なのに、自然言語で指示するときは自然な表現なので使ってしまうのかもしれない
@hidef1321
@hidef1321 Жыл бұрын
オブジェクト指向命名者アラン・ケイにどこまで比重を置くかで、たとえ話も変わってくるなぁ。
@lonrwin8789
@lonrwin8789 Жыл бұрын
プログラミングの進化はプログラムを機械語に翻訳するコンパイラの進化とも思う、それで人と機械が近くなった 果てはchatGPTのようなAIによって自然言語でプログラムできるようになっていくのかな、インターステラーのロボットみたいに
@keitoy2292
@keitoy2292 Жыл бұрын
一応、C言語にもラベルを使ったgotoは組み込まれているので、書こうと思えば書けなくはない。 ただ、「関数で名前を付けて、mainで呼び出す」という形式は、機械言語でも、回路によるプログラムでも、やっていたこと。 両方を知っている人からすれば、gotoで一つの文章の中でジャンプするよりも、完全に分けてくれた方が楽だよね。という話で、それこそ、別のモジュールに計算させて、並列で動かしてしまえばいいじゃん。という結果になってしまったりする。 機械言語なら、やろうと思えば帰ってくるまでの時間を比較的簡単に計算できるので、投げて、帰ってくるまでの時間に他の処理をやって、とかもできる。当時と比べれば格段にハイスペックになった現代のPCでやる必要性は一切ないし、スペックを計算に入れれば現代のPCでも帰ってくるまでの時間を計算することが出来なくはないが、かなりめんどくさいので、普通はやらない。
@applejack0094
@applejack0094 Жыл бұрын
大学(農学部)のプログラミングの授業でc言語やってる時に先生からgotoはやめろって言われて当時はよくわかんなかったけど、よくわかりました
@fukumi2002
@fukumi2002 9 ай бұрын
Go To Considered Harmfulっていうbe動詞を抜かした書きかたが新聞記事の見出しっぽくて煽りスキル高い
@のっぴ
@のっぴ Жыл бұрын
多くの人を動かす時には、制約を設けて秩序を保つ。 プログラミングに限らず世の中のプロジェクトは標準化や規約で成り立ってる。 オブジェクト指向プログラミングは継承して変わっていく感じからダーウィンの進化論あたりかな?
@actwkusunoki
@actwkusunoki Жыл бұрын
関係ない話を延々垂れ流されるのに対し、必死に元に戻そうと苦心する江戸川ダイクン、おもろい。
@hemangandhi4596
@hemangandhi4596 Жыл бұрын
30:11 の階層構造の話しに関する例ですけど、構造化プログラミング言語にも最初に階層が曖昧でした。英語でdangling else problemと呼ばれるALGOL言語に起こった問題です。ALGOL以来のプログラミング言語作りに影響される問題です。今のルールはyou should not have an ambiguous grammarみたいで、「ソースコードの捉え方が一つしかない方がいい」といいう意味です。
@sabak7390
@sabak7390 Жыл бұрын
初心者の頃、何も知らずにフローチャートを書いたら、自然とスパゲッティーコードになった記憶があるので、 アルゴリズムを考える上で構造化定理の原則を適用することは必ずしも人間には自明でないことなのかもしれないですね。 当時のコンパイラは最適化なんて全く効いてないといっても過言ではなかったでしょうから、 その時代の人たちはgoto文を排除することで起きるパフォーマンスの低下をどのように考えたのかなど、 気になることが色々ありますね。
@早川眠人
@早川眠人 Жыл бұрын
FORTRANなどは、かなり初期から最適化が進んでいた。ループ中の演算をベクター命令にしたりしていた。構造化されたプログラムは、コンパイラにとっても局所最適化の対象を見つけ易く寧ろ歓迎されていた。
@hiroyukippp7380
@hiroyukippp7380 Жыл бұрын
オブジェクト指向は天地創造ですね(ヒカリアレ)
@user-pq2db8xc9l
@user-pq2db8xc9l Жыл бұрын
表記体系の話は、慣例読みを思い出しました。口頭の単語(音列としての単語)上位だった時代のもので、表記ありきの現代ではもうほとんど起こらない現象ですね 難読地名が読みにくいというだけで改変されていくのは歴史が消えていくみたいで悲しい気持ちになります
@isamich1535
@isamich1535 8 ай бұрын
地名については、「読みにくい」というか、呼ばれていたものに後から漢字を当てたのがほとんどだと思うので、漢字が変わるのはやむを得ないのかな?
@SYALIREA
@SYALIREA Жыл бұрын
水野「若手の頃は言われましたよ(若手)」
@user-pb7db2yu1q
@user-pb7db2yu1q Жыл бұрын
goto文を使うなという事でここまで話せるとは凄い。goto文はアセンブリ言語では使いまくるけど、C以後だと、あえてwhile文にてbreakやcontinueを強引に使う事で実現してたりしますね。
@manbongo1588
@manbongo1588 Ай бұрын
人間が胎児の時、大脳ニューロンが極大になってなんでも覚えられる状態だけれど 成長とともにどんどんニューロンは減っていって出来ることが制限されることで人間として洗練された可能性が広がる、みたいな話を思い出しました
@leomt1314
@leomt1314 Жыл бұрын
ルールの発明って重要なんやな
@nagasesion
@nagasesion Жыл бұрын
機械語のjmpは,CPUに依存するけど大抵かなりプリミティブで,「レジスタの値が0なら,ラベル地点へジャンプ」しか能が無いので,比較して大きければをやりたいとなると,引き算して0以下になるかどうか,みたいな処理をする必要があって更に3ステップぐらい分割される印象がある.
@user-bd7ij9jh3n
@user-bd7ij9jh3n Жыл бұрын
なんとかゆきさんとかなんとか斗司夫さんの切り抜きでよく見かける奴だ なんとかゆき「質問者さんは〇〇なので☓☓するよりも△△したほうがいいと思いますね」 切り抜き「☓☓する人は馬鹿です!!△△しろ」
@contactMiu
@contactMiu Жыл бұрын
構造化プログラミングの説明をするなら、構造化プログラミングで書かれていないC言語のコードと、構造化プログラミングで書かれたC言語のコードを比較しないと、C言語が生まれたことや、if文やfor文が導入されたことが構造化プログラミングだと勘違いする人が出そうな気がします。
@user-yt4pi5mc9n
@user-yt4pi5mc9n Жыл бұрын
ノイマン型アーキテクチャも、当時の技術者は大体同じようなことを思っていてノイマンはそれをまとめただけという話も大学の講義で聞いたことあります。(もちろんまとめる功績も偉大ですが
@MedakaNoBoo
@MedakaNoBoo Жыл бұрын
わかりやすい表現としてだろうね。ノイマンの功績は数学での証明にあったと思うよ
@user-uj9dx1ig8c
@user-uj9dx1ig8c Жыл бұрын
世界史たとえは大体フランス革命って言っておけば当たる
@MedakaNoBoo
@MedakaNoBoo Жыл бұрын
世界史たとえは大抵イギリス産業革命って言っておけば当たる……
@user-takoyakidaisuki
@user-takoyakidaisuki Жыл бұрын
何番に飛ぶって昔よく本屋に並んでたゲームブックに似てますね。このアイテムを使うなら581へ、みたいな。
@akinaka7543
@akinaka7543 Жыл бұрын
12:23 そうなのよねえ。パラダイムシフトしないと、なんぼ図解しても判り易くならないのよね…(遠い目
@hiroteruyoshihara1370
@hiroteruyoshihara1370 Жыл бұрын
構造化プログラミングはハードウェアのアーキテクチャーにも影響を与えたと思いますよ。CPUは知りませんが、DSPではループの回数がプログラムで任意に決まっていればループ内の命令をカウンターを使って回数回だけ実行するような仕様になっているプロセッサーがあったと思います。条件分岐でループから抜ける場合は分岐予測を如何に正確に行うかでパイプラインがフラッシュされるペナルティーを最小に抑えるかと言うハードウェアの話になるので構造化プログラミングとは関係ないですけどね。
@MrDeho666
@MrDeho666 Жыл бұрын
「軸足に置くものを変えたという意味でも」という言及が47:27にあるけれど、むしろそれがパラダイム・シフトなのかなと思ったり。
@daiyuki7235
@daiyuki7235 Жыл бұрын
テッドチャン読書会でもやってテッドチャン喋りたい欲を昇華させた方が良いのかもしれない
@mariel0171
@mariel0171 Жыл бұрын
そういえば、ナーシャ・ジベリは住所マスターでもあったな・・・。
@akai_000
@akai_000 Ай бұрын
処理フローチャートが地下鉄みたいっていう場面がありましたが、現在の路線図の表現形式を作り出したのはハリー・ベックさんというロンドン地下鉄の信号整備エンジニアの人だったらしいので、何か通じるものがあるのかもですね
@rintya1518
@rintya1518 Жыл бұрын
マイコン管理で番地管理参照をまとめる役職が部活にあった
@user-fn8rx6wc5w
@user-fn8rx6wc5w Жыл бұрын
明石家さんまさんが「☓ペケ」をおでこに書いた後、「☓1」のハードルが下がり時代が大きく動いた。
@user-pq2db8xc9l
@user-pq2db8xc9l Жыл бұрын
漢文もレ点と一二点で事足りてるもんなあ
@plasoto
@plasoto Жыл бұрын
「すごろくみたい」むっちゃわかる!
@raim3436
@raim3436 3 ай бұрын
vbaでやたら大きいプロジェクトをやってた時にコーディング規約でgotoやめろって書いてあったのを思い出しました。いやエラーのときはメッセージ出したいねんなんで禁止なん?って思ってましたけどこれか!パラダイム後だからわからなかったんですね…。
@kensuketomioka2321
@kensuketomioka2321 Жыл бұрын
ポケモンを使うとプログラミングの説明がしやすそうです オブジェクト指向の説明にも適してそうですね(e.g. ポケモン一般→種族としてのピカチュウ→手持ちのピカチュウ と変数やメソッドが継承される)
@lefthand3754
@lefthand3754 Жыл бұрын
今まさに、エンジニアリングはAIがやる時代へのパラダイムシフトが始まってるのかもです
@MedakaNoBoo
@MedakaNoBoo Жыл бұрын
AGIのパラダイムシフトは「たまにウソをつく」ことじゃないかなあ。呪文から相手が喜びそうな答えを見つけ出してくる。つまり、人間のウソ(建前と本音)を学習してゆく子どもが「善悪を判断しウソを使い分ける」ができるようになる過程をみているような気がする。
@にゃんこくん
@にゃんこくん Жыл бұрын
24:48 選択より分岐のほうが一般的ですかね?
@user-nh9xk1rc8u
@user-nh9xk1rc8u Жыл бұрын
??? 概念が違うでしょう? 選択しないと分岐できないし 分岐するなら選択は必須
@issuiamano
@issuiamano Жыл бұрын
「オブジェクト指向」は産業革命と予想。
@ryojitakei71
@ryojitakei71 Жыл бұрын
MSXでBASICを使って、1行ごとに文頭に適当な行番号(10,20,30,40…)を付けて「120 if A = 0 then goto180 else goto 240」みたいなプログラムを書いていた小学生の僕にダイクストラが「そのやり方めっちゃクソやで」って教えてくれていれば今頃ぼくも立派なプログラマになっていたかも知れません。
@user-oh1vk2lc9d
@user-oh1vk2lc9d Жыл бұрын
当時のBASICとかのgoto文とアセンブリのjmpの意味合いは違う気がするんですよね。機械語においてjmp命令に相当するものは今も当たり前に使われているし、それ自体はメモリの仕組み上現代のコンピュータアーキテクチャとしては自然なわけだけど、それを高級言語にそのまま適応していたことが問題なわけで。
@thesaito2721
@thesaito2721 Жыл бұрын
オブジェクト指向というと活版印刷の発明かな? 40〜50代のマイコンマニアはベーシックの洗礼を受けてるからこな最初のパラダイムシフト前の思想から抜け出せないよね、はい私です
@ousakatoru
@ousakatoru Жыл бұрын
出来上がったプログラムが混沌しているか秩序なしなのかは、手法ではなく設計者のセンスで来まる。 ルールを決めさえすればセンスがなくても、わかりやすく美しくなるという考えは幻想である。
@RIAFeed
@RIAFeed Жыл бұрын
現実はそういったセンスの持ち主は限られていて、実務では色んな人が紛れ込むので、(コーディング)ルールどころかそもそもやりたくても出来ないレベルで(言語仕様を)規制しないとすぐ混沌とするんだよなぁって感じですよね。
@gutsnosada
@gutsnosada Жыл бұрын
同程度の可読性を維持するために必要な努力とセンスの量が違う、という話ではないですかね?
@unknown00kuv
@unknown00kuv Жыл бұрын
そしてそれらの領域に入り込んだ人たちが総じて「ワタシハ〇〇チョットデキル」と言うようになる。
@user-en3ji8lf2h
@user-en3ji8lf2h Жыл бұрын
ところで自分は、構造化プログラミングを叩き込まれた後に、別の職場でマシン語を書いた。 この時は、条件分岐やループ構造をマクロで準備して、マシン語で構造化プログラミングしたものです。 でもマシン語で何が面倒って、掛け算や割り算を含む計算が・・・
@user-dr2nq1td5g
@user-dr2nq1td5g Жыл бұрын
これが合ってるのかどうか分からないけど、 go to文を使わないようにすると、コードの記述の中にある程度「時間性」を保つことができるから、より人間にとって分かりやすくなったってことなのかな(go to文を使うと「順次」のルールが守れない)。 で、go to文が含まれる一連の処理は、「選択」もしくは「反復」処理になっているから、 go to文を禁止にする→順次、選択、反復の3つのルールを守るってことになってるのか。
@user-iv9cs7gw1d
@user-iv9cs7gw1d Жыл бұрын
プログラマーが馬鹿にするVBAも同じで、ループ処理の中にIF分を入れて、分岐でSelectCaseを入れつつ、当てはまらない場合は条件を飛ばして次のループに移行するGoToを差し込むは、何かと便利です。
@BigProblemExplained
@BigProblemExplained Жыл бұрын
41:09 ここで堀元さんが紹介しているアプリの名前をご存知の方いらっしゃいますか?
@user-my8kl9kt7k
@user-my8kl9kt7k Жыл бұрын
Rewind AIでは?まだリリースされてないようです。
@edogawalemon
@edogawalemon Жыл бұрын
鉄道って割と最初から貨物の運搬や庶民の交通に利用されていたような気がする。 19世紀中ごろにはすでにトーマス・クックらにより鉄道を使ったツーリズムビジネスが生まれていた訳だし。
@pompe-o
@pompe-o Жыл бұрын
オブジェクト指向の起こりを歴史で例えるならフォードの大量生産じゃないかと予想
@falconno6554
@falconno6554 Жыл бұрын
もしくは太古の昔のPCから今のPCみたいなたとえになるか (リンゴマークのあの会社の元社長さんが大頭するまで自作PC的なものしかなかったようですし…)
@MedakaNoBoo
@MedakaNoBoo Жыл бұрын
受注生産から大量生産の転換期に生まれた技術ってことね、部品化とベルトコンベア生産だね。なるほど
@masahikak
@masahikak Жыл бұрын
go to 使わないと書けない、とおもってたのは当時の幼い自分はBAISCのせいだと思ってました。Cを使うようになって自然とgo to使わなくなったから
@shinsogayborg
@shinsogayborg 2 ай бұрын
N88BASICでGOTOしまくっていたあの頃。時代は流れいつのまにかGOTOが無くなり、パニックになった記憶があります。
@user-yb4xk7ng5m
@user-yb4xk7ng5m 5 ай бұрын
機械語のフローチャートは俺が昔RPGツクールで作ってたイベントフローチャートみたいだ
@user-tp2yo3bb1u
@user-tp2yo3bb1u Жыл бұрын
人間が行っていた住所マスターの仕事を人間が意識しないで良いように機械が行うようになった、という感じかな? 番地の存在そのものを人から隠した、とも言えるし、人を番地管理から解放した、とも言える。 プログラムの書き方が変わったのは、人間と機械の役割分担を変えるに伴って、人と機械のやり取りの窓口の決まり(インターフェース)が新しくなった、とも言える気がする。
@gamma9472
@gamma9472 Жыл бұрын
宗教改革は、それまでは聖職者の解釈という媒介物を介してしか教義の本質(聖書の記述)に触れられなかったのが、誰もが聖書に直接アクセスできるようになったという変化なので、プログラミング言語の進歩とは逆の変化じゃないですか? プログラミング言語はコンピュータ内部の処理を意識しなくてもよくなるように進歩しているので、宗教のたとえで言うなら、聖書の抽象的な記述を日常的な言葉に変換してわかりやすく説明してくれる優秀な聖職者が現れたという状況だと思います。
共通テスト数学を、数学者が解いてみた結果【大学受験数学】
40:49
篠原好【京大模試全国一位の勉強法】
Рет қаралды 316 М.
ТАМАЕВ УНИЧТОЖИЛ CLS ВЕНГАЛБИ! Конфликт с Ахмедом?!
25:37
Incredible magic 🤯✨
00:53
America's Got Talent
Рет қаралды 78 МЛН
THEY WANTED TO TAKE ALL HIS GOODIES 🍫🥤🍟😂
00:17
OKUNJATA
Рет қаралды 24 МЛН
ネット回線の歴史は半沢直樹。接続を巡る大人の戦い【ピアリング戦記1】#50
37:52
「晩ごはんはカレー」を極限まで短くすると、"沈黙"になる【情報理論1】#9
27:06
ゆるコンピュータ科学ラジオ
Рет қаралды 109 М.
「種」は存在するのか? 30以上の定義が乱立する謎を追う。#67
43:54
技術者に怒られないためのエクセル術。セルを結合するな。【データベース3】#89
26:49
心は存在しない。【ビジュアルシンカー3】#324
1:19:00
ゆる言語学ラジオ
Рет қаралды 200 М.