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

แชร์
ฝัง
  • เผยแพร่เมื่อ 23 ธ.ค. 2024

ความคิดเห็น •

  • @YuYuYu-Yu
    @YuYuYu-Yu ปีที่แล้ว +399

    「Aは有害である」(A considered harmful)というタイトルそれ自体もバズって、「~は有害である」というタイトルの論文が大量に出て来て、やがて「『~は有害である』は有害である」("Considered harmful" considered harmful)という論文まで出て来たらしい。

    • @pasolinipier2291
      @pasolinipier2291 ปีที่แล้ว +109

      「買ってはいけない」に対する「『買ってはいけない』は買ってはいけない」みたい。

    • @yurucom
      @yurucom  ปีที่แล้ว +82

      めちゃくちゃいいうんちく!!

    • @haruya.H
      @haruya.H ปีที่แล้ว +31

      9割本、本質本みたいなのがいつの世にもあるんですね…

    • @ken_to_delicat
      @ken_to_delicat ปีที่แล้ว +3

      黒島先生が収集するやつー!

    • @huac-hoshiko
      @huac-hoshiko ปีที่แล้ว +27

      『環境問題のウソ』って本が流行ったあと、『環境問題のウソのウソ』って本が出たのと似たものを感じる。

  • @tochan2520
    @tochan2520 ปีที่แล้ว +102

    12:35
    このフローチャート見て「美しい」「なんてわかりやすいんだ」と思っていた世代です。懐かしいです。

  • @unknown00kuv
    @unknown00kuv ปีที่แล้ว +57

    構造化プログラミングが「自由度の高いはずのジャンプ命令をあえて禁止したことで、かえってプログラミング言語のパラダイムシフトに発展した」のも面白いけど、
    21:34 の水野さんの話を引用して「ジャンプ命令を禁止することを実は多くの人々も望んでいて、それが広まる土壌があった」から受け入れられたというのも面白いところだと思う。

    • @forestbutter3332
      @forestbutter3332 7 หลายเดือนก่อน +7

      プログラミングをやっている身としてはgo to等のジャンプは極めてスパゲティコードになりやすい
      結局のところ、コードを読む時に人は上から下へ読むと言う方向性がジャンプ禁止したいと言う欲求の根源だと思う

  • @lonestar930
    @lonestar930 ปีที่แล้ว +27

    義務教育にプログラミングを入れると論理的思考力が身につくと言われる理由を、
    プログラミング素人の水野さんが初見でコンピューターサイエンティストより上手く説明できていることに皮肉を感じる。

  • @SKYLINE4R35
    @SKYLINE4R35 ปีที่แล้ว +42

    こういう番組の登録者が5万余りいるのが、昔々趣味でマシン語書いてた身としては嬉しい。
    絶対番地にジャンプする大きなデメリットの一つは、デバッグ後に処理を追加することになったらそれ以降の番地が一斉にずれること。その修正が大きな手間だった。(処理が減った場合は NOPなど「何も処理しない命令」を埋めたりして一時しのぎしたり、そうすると貴重なメモリを無駄遣いすることになったりとか)
    何もかもが皆懐かしい・・・

    • @SonodaMai74
      @SonodaMai74 ปีที่แล้ว +1

      相対ジャンプを使えば多少は・・・修正箇所が減る・・・
      うん、なつかしい;;
      JP と JR でしょうか。 < Z80が大好きだった

    • @SKYLINE4R35
      @SKYLINE4R35 ปีที่แล้ว +8

      @@SonodaMai74 私もZ80(PC-6001)で育ちました。そもそもCPUという「計算機」でゲームができるのがなぜなのかわからなくて、市販のゲームを全部「レポート用紙にハンド逆アセンブル」したのが私の基礎知識の一部になってるのは間違いない。それを全部解析して理解したときは仕組みに激感動した。今も忘れない思い出。

  • @やすはる-z3t
    @やすはる-z3t ปีที่แล้ว +10

    初めてこのチャンネルを見ましたが、こういうのを待ってましたという感じです!
    本職SEですが、ITの勉強ができてゆるく家事とかしながらラジオ感覚で聞けるの無いかなと思っていました。普通に解説している動画とかはあると思うんですけど、講義形式の動画はよし勉強するぞと腰を据えないといけなくて結局見なくなっちゃうんですよね。
    例え話や脱線、いいと思います。色んな知識が組み合わさって楽しく聞けるというのがこのチャンネルの良いところだと思うので、むしろ自然言語に例えたり、関係のないSFの話をするくらいのほうがラジオ感覚で気楽に聴けると思います。
    関係ないですが水野さんの声は後藤達也さんに似ていますね。

  • @kensuketomioka2321
    @kensuketomioka2321 ปีที่แล้ว +99

    だいたいどの言語でも、
    変数と関数の定義に加えてif for while の構文が書けたら最低限使えるけど、それが偶然じゃなくて、あらゆるフローチャートを記述できると数学的に証明されてるのは面白いな

    • @ish_pack
      @ish_pack 2 หลายเดือนก่อน

      処理に順序があって関数の自己呼び出しができるならifだけでチューリング完全

  • @J_CHICKEN137
    @J_CHICKEN137 ปีที่แล้ว +155

    ゆるコンピュータ科学ラジオあるある
    ・脇道、脇道の脇道と逸れていっても、ちゃんと階層を把握していて正しく戻ってこれる堀元さん
    ・goto文で台本ブレイクする水野さん

    • @mentosukoala
      @mentosukoala ปีที่แล้ว +25

      gotoで無理やり戻ってる気もする

  • @趣味で数学をやっている者-g1b
    @趣味で数学をやっている者-g1b ปีที่แล้ว +32

    「制限すると表現の幅が増える」
    「制限するとできることが増える」って言うのは、数学でも同じですね〜
    一般の位相空間を距離空間に制限すると、距離が使えるのでできることが増えるんですよね。

    • @US-wb8yp
      @US-wb8yp ปีที่แล้ว +4

      抽象的な議論は普遍的だけど言える内容は少ない。
      具体的な話に制限すると限定的だけど言えることが多い。
      みたいなことですかね。
      他にもたとえば抽象的な集合論で議論できる命題は少ないけど、より具体的に群、体、ベクトル空間って話を制限してくと言える命題は多くなる。言葉をお借りすると、できることが増える

  • @yu100nabeyan
    @yu100nabeyan ปีที่แล้ว +151

    江戸川ダイキストラ「go toは害悪だから〜」
    はただのコロナ政策批判で笑う

    • @可児風我
      @可児風我 ปีที่แล้ว +1

      名前からバシバシ来る泡沫政党のヤバい奴感

  • @keykay43
    @keykay43 ปีที่แล้ว +13

    学生の頃、プログラミングをやってる友人が自主ゼミのとき数学でインデントを使ってましたね。長い証明のときは「Aを証明するための、補題Bを証明するための、場合b1のときの……」みたいになって、何の証明してるんだ?になりがちなので、何にせよ階層性を意識するのは人間の認知にあってるのかも

  • @あまた-i3n
    @あまた-i3n ปีที่แล้ว +21

    C言語は、今でこそ「マシン語の次レベルの言語の代表格」みたいな扱いだけど、
    それは「鳥類は代表的な恐竜」みたいな話で、登場当時のC言語はいっぱいあるうちの1つに過ぎなかったんだよな。

    • @minami_alinko
      @minami_alinko 7 หลายเดือนก่อน

      >今でこそ「マシン語の次レベルの言語の代表格」
      「今でこそ」……1980年代半ばにはもうそんなじゃなかったですか?
      高速化が必要なところでは適宜C言語からアセンブラに切り替えてコードを書くということがしやすかったからですね。

    • @kazuselen
      @kazuselen 4 หลายเดือนก่อน +1

      アセンブラの領域もC言語の領域もだいぶ減ったよなとは
      C言語が未だに高級言語に分類されてることに違和感を持つ人はかなり多いんじゃないか
      もはやアセンブラは超低級、Cが低級くらいの方が感覚にあってる

  • @alwaysoutofbase5255
    @alwaysoutofbase5255 ปีที่แล้ว +8

    出てくる喩えが極めて正確ですね。お二人の聡明さが滲み出ている。

  • @jukusato
    @jukusato ปีที่แล้ว +17

    昔、アメリカの専門雑誌を読んでいる先輩が「プログラムはGOTO文を使ってはいけないんだ」と言っていて、「GOTO文を使わなきゃプログラムは作れないじゃないか!何を言ってるんだ?」と思いました。それから数年たち、日本でもGOTO文なしプログラムは当たり前になりました。

  • @tenkawakiirobou
    @tenkawakiirobou ปีที่แล้ว +28

    持ってる情報と閃きだけで構造化プログラミングのほぼ回答を持ってくるとは…!

  • @陸奥長門-i3c
    @陸奥長門-i3c ปีที่แล้ว +5

    最後のまとめの部分から、最近はやりのChatGPTも元を正せば
    よりナチュラルな自然言語を機械語に変換して実行されているあたり、
    より機械中心主義から人間中心主義になったとも考えられて面白い動画でした

  • @頭クレイジー-o1z
    @頭クレイジー-o1z ปีที่แล้ว +30

    水野さんに一度C言語入門をしてもらって、世間で難しいと言われるポインタとかをどう理解するか、各概念にどう反応するかを見てみたいな。堀元さんの説明の仕方にもよるだろうけど、プリンとか言い出さない限りサクッといけそう
    個人的な宗派としてはRustに入門してもらいたいが

  • @コウ-o6n
    @コウ-o6n ปีที่แล้ว +35

    自分は情報よりの人間なのですが、こうやってある程度言語学の知見がある人の視点が面白すぎて無限に見れる

  • @NekonyanDesu
    @NekonyanDesu ปีที่แล้ว +7

    機械語のジャンプは昔よくあったゲームブックみたいだな。RPGがテーマだったりする子供向けの本で
    この行動Aをするなら何ページに飛ぶ。この行動Bをするなら何ページに飛ぶってのがたくさん書いてあって物語が分岐する。
    機械語を知らないんだけど、実際には機械語は命令自体もアドレスで表されるのかな。しかも2進数だったり16進数で書くのかな?かなり大変そう。

    • @天才の証明
      @天才の証明 ปีที่แล้ว +2

      アドレスに命令が入ってる感じ
      その命令を16進数表記とかで記す感じだね

    • @NekonyanDesu
      @NekonyanDesu ปีที่แล้ว

      ​@@天才の証明
      教えてくださってどうもありがとうございます。とても難しいんですね

  • @KeppyNaushika
    @KeppyNaushika ปีที่แล้ว +67

    18:16 「GoTo文に代わる一手法」→「GoTo文は有害である☆」は草

  • @hemangandhi4596
    @hemangandhi4596 ปีที่แล้ว +1

    30:11 の階層構造の話しに関する例ですけど、構造化プログラミング言語にも最初に階層が曖昧でした。英語でdangling else problemと呼ばれるALGOL言語に起こった問題です。ALGOL以来のプログラミング言語作りに影響される問題です。今のルールはyou should not have an ambiguous grammarみたいで、「ソースコードの捉え方が一つしかない方がいい」といいう意味です。

  • @マンばすけっと
    @マンばすけっと ปีที่แล้ว +45

    息吹を読んで、
    「思い出は全部記憶しているけどね、記憶は全部は思い出せないんだ」
    という言葉の深さを改めて感じましたw by高校生

  • @Tさん-c5w
    @Tさん-c5w ปีที่แล้ว +31

    プログラミング的思考とかプログラミング教育とかやってる人たちが「順次処理、条件分岐、繰り返し」とよく言ってるのは、このダイクストラさんの話がベースになってるのか。

  • @mudaso-heavy-user
    @mudaso-heavy-user ปีที่แล้ว +15

    楽しみに待ってました

  • @rayfiyo
    @rayfiyo ปีที่แล้ว +17

    38:50 堀元が『息吹』にgotoした瞬間

  • @miturusatozaki5490
    @miturusatozaki5490 ปีที่แล้ว +4

    オブジェクト指向言語へのパラダイスシフトは、個人経営で仕入れから陳列、会計まで一人で何でもやってた八百屋さんが、スーパーマーケットに変わってそれぞれの業務を専任の担当者がこなす様になった感じだと思う。
    忙しい部署に人を増やしたり、暇になったら簡単に首切れる様になった。
    あと他(違うプログラム)からも専門性を持った人を即戦力としてリクルートしやすくなった。

    • @miturusatozaki5490
      @miturusatozaki5490 ปีที่แล้ว +3

      Afterism発現。
      蒸気機関(マルチスレッド)の普及による、仕事の分業化(オブジェクト指向)。
      つまり、オブジェクト指向は産業革命だ!
      エウレカ!

  • @levokrool2667
    @levokrool2667 ปีที่แล้ว +17

    これはゆる言語ラジオのゲーム化の伏線回ですね

  • @multifeb13
    @multifeb13 ปีที่แล้ว +22

    「カノッサの屈辱」でフジテレビの深夜番組を思い出す世代

    • @マイラー-m4w
      @マイラー-m4w ปีที่แล้ว +3

      「やあ皆さん、私の研究室へようこそ」懐かしいてすね。学生のころ、池袋でカノッサの屈辱展をやっていて、見に行ったのを覚えています。

  • @ryoryo9239
    @ryoryo9239 7 หลายเดือนก่อน +1

    39:32 テッドチャンのその物語、その対比を読んでみたいです。歴史を記録したから、負けた国は戦争の戦後の孫までも、戦勝国を恨んだり、戦勝国はずっと上から目線になるのでは?と思ったりしてたので、それをすでに描いた物語があると知ってとても読んで見たくなりました!!

  • @haruka_52
    @haruka_52 ปีที่แล้ว +8

    16:41 dijkstraという姓は、北海沿岸のドイツとオランダにまたがる地域を治めていたフリースラント由来の名前らしいです。
    で、エドガー・ダイクストラはどちらかというと、オランダ人とのことです。

  • @raim3436
    @raim3436 9 หลายเดือนก่อน +2

    vbaでやたら大きいプロジェクトをやってた時にコーディング規約でgotoやめろって書いてあったのを思い出しました。いやエラーのときはメッセージ出したいねんなんで禁止なん?って思ってましたけどこれか!パラダイム後だからわからなかったんですね…。

  • @256yayo
    @256yayo ปีที่แล้ว +20

    自由を縛ると、楽になったり簡単になったりすることは結構ありそう。

    • @furusatonotkokyou
      @furusatonotkokyou ปีที่แล้ว +3

      AからBの最短経路の道の一部を取り壊すことで、仕方なく多少遠回りの道にみんながバラけてくれるから、結果渋滞が減った(逆に道を作るを渋滞が増えた)とかある
      …ちょっと違うかな

    • @RIAFeed
      @RIAFeed ปีที่แล้ว +3

      Railsなんかそうですね、細かいルールに従えばフレームワークがよきに計らってくれるやつ。ルールから外れると地獄ですが。

    • @yu100nabeyan
      @yu100nabeyan ปีที่แล้ว +2

      何してもいいよ、何描いてもいいよって言われるのが一番困りますね

    • @keramischmond
      @keramischmond ปีที่แล้ว +8

      「夕飯何でもいいよ」が一番困りますもんね
      「鶏肉の消費期限が今日で、人参と玉ネギの半端があって、冷凍ブロッコリーが袋に半分……よし今日はシチュー!」みたいに制限を加えていってメニューを決める日々です

    • @furusatonotkokyou
      @furusatonotkokyou ปีที่แล้ว +7

      @@keramischmond
      今ふと思ったんですけど、晩飯何がいい?って聞かれてる方も自由度高すぎて、何でもいいって答えてしまうのかと…
      晩飯、〇〇と◇◇と△△どれがいい?みたいに聞くと答えてくれそう

  • @山田博良
    @山田博良 ปีที่แล้ว +3

    プログラマーが馬鹿にするVBAも同じで、ループ処理の中にIF分を入れて、分岐でSelectCaseを入れつつ、当てはまらない場合は条件を飛ばして次のループに移行するGoToを差し込むは、何かと便利です。

  • @えの-v7y
    @えの-v7y ปีที่แล้ว +5

    興味深いですね。確かに図みたいにブロックを見ていることに気付きました。ほとんどのエディタでインデントブロックの補助線が出ますし、2次元的な情報として捉えようとされていますね。ところで次回出てくるかもしれないJavaは goto を予約語としているけどなんもなし、という形で封印していますね。昔、おじさんプログラマがオブジェクト指向もよく分かんねえしgotoも使えねえしよぉみたいなことを言っていたのを思い出しました。あのおじさんもgotoは害悪だと深層では思っていたのだろうか

  • @sugar_day
    @sugar_day ปีที่แล้ว +17

    マシン語の処理はゲームブックに似てるなと思いました。

  • @shinsokayborg
    @shinsokayborg 8 หลายเดือนก่อน +3

    N88BASICでGOTOしまくっていたあの頃。時代は流れいつのまにかGOTOが無くなり、パニックになった記憶があります。

  • @チキン南蛮-r4p
    @チキン南蛮-r4p ปีที่แล้ว +9

    21:32 ごく最近のバズりの一つに
    いわゆる“ひろゆき現象”があるが、その是非はともかく
    この現象も現状に不満を持った人が多くいたという土壌があったからこそ
    これほど大きなブームにまでなってしまったんだろうと思う

    • @gutsnosada
      @gutsnosada ปีที่แล้ว +1

      近い構造だけど少し違う結論を堀元さんがnote(とどっかの雑誌のインタビュー)で話してた気がする
      ひろゆきとビジネス書は同じ目的で消費されている、みたいな

  • @rockytop1740
    @rockytop1740 ปีที่แล้ว +2

    Go To Considered Harmfulっていうbe動詞を抜かした書きかたが新聞記事の見出しっぽくて煽りスキル高い

  • @abu48823
    @abu48823 ปีที่แล้ว +10

    そしてジャンプ地獄から解放された人類は今度はネスト地獄に悩まされるのであった…

    • @kazuselen
      @kazuselen 4 หลายเดือนก่อน

      関数を適切に分けるんだよ!

  • @andanish3009
    @andanish3009 ปีที่แล้ว +8

    次回の堀元さん「オブジェクト指向はマニュファクチュアだ!」

  • @ryojitakei71
    @ryojitakei71 ปีที่แล้ว +3

    MSXでBASICを使って、1行ごとに文頭に適当な行番号(10,20,30,40…)を付けて「120 if A = 0 then goto180 else goto 240」みたいなプログラムを書いていた小学生の僕にダイクストラが「そのやり方めっちゃクソやで」って教えてくれていれば今頃ぼくも立派なプログラマになっていたかも知れません。

  • @のっぴ
    @のっぴ ปีที่แล้ว +1

    多くの人を動かす時には、制約を設けて秩序を保つ。
    プログラミングに限らず世の中のプロジェクトは標準化や規約で成り立ってる。
    オブジェクト指向プログラミングは継承して変わっていく感じからダーウィンの進化論あたりかな?

  • @damasu_tarokaja
    @damasu_tarokaja ปีที่แล้ว +17

    Dijkstraは表記揺れでダイキストラとも書かれることに注意

    • @yorosu13
      @yorosu13 4 หลายเดือนก่อน

      水野ダイキストラ…

  • @moroha10085
    @moroha10085 ปีที่แล้ว +6

    今Rustの学習してるけど、このパラダイムシフトってRustと一緒だ。選択と反復の概念を導入して可読性を上げたのがc言語。所有権と借用の概念を導入してメモリ安全性を上げたのがRust。

    • @minami_alinko
      @minami_alinko 7 หลายเดือนก่อน +2

      >選択と反復の概念を導入して可読性を上げたのがc言語
      ちがいます。
      選択や反復はC言語以前の高級言語にはとっくに導入されてました。
      (C言語よりよほど古いALGOL60にもFORTRAN IVにも当然ある)
      可読性はC言語より前に生まれたPascalやCOBOLのほうが上です。
      C言語なんてすぐ読みにくくなる言語だからこそ、「国際難読化Cコードコンテスト」とい奇祭があるくらいで。
      当時のプログラマには「ソフトウェアの開発技法」というものがまとまっていなかったんですよ。それを、エドガー・ダイクストラやハーラン・ミルズがそれぞれ別個に「構造化プログラミング」を提唱しました。
      一般的な”構造化プログラミング”の理解のされかたはミルズのほうに近くて、ダイクストラが提唱したのはもっと範囲が広いものでしたが、ごっちゃにされた。
      ダイクストラにとって、goto悪玉論より「構造化プログラミング」が意図しない形でバズり倒したことのほうが気にくわず、後年、ダイクストラはミルズと(Pascal開発者であり「Go To Statement Considered Harmful」に題名を差し替えた犯人でもある)ニクラウス・ヴィルトへの恨み節を書いています。
      パラダイムシフトが起きたとすれば「プログラミング言語」ではなく「コーディング手法の確立」なんですよ。

    • @kazuselen
      @kazuselen 4 หลายเดือนก่อน +2

      @@minami_alinkoC言語は別に読みにくくないぞ
      Rustの方が読みにくいくらい
      それに難読化なんてたいていどんな言語でもできるから根拠にもならん

    • @takasan_ino
      @takasan_ino 4 หลายเดือนก่อน

      自分にとっての読みやすいと、万人が観て読みやすいは違う。
      ======================================
      C言語は自由度の高い言語です。
      高級言語っぽく作りたければ、高級言語っぽく記述出来るようになるし、
      自分なりの文法をC言語で記述する事にも、
      万能ではないが、記述がある程度、出来はする(デバッグは慣れないと、大変ですが。)
      低級言語では機械語で出来る所にメスを入れたい時、
      CPUの特性を活かした物凄く速い実行速度も工夫次第で出せる。
      (メモリを壊したりもするけど)
      C言語は低級言語であり、高級言語でもある。
      (ただその後、C++などにより
      低級言語に近い記述も出来、
      高級言語の色彩の香りを強くした。)
      =======================================
      RUSTは低級言語のように、実行速度が速く、
      メモリを壊さないプログラミング作法を文法面から、
      そのルールを創造してるように(安全性の為、縛る基準を設定してるように)見える。
      所有権と借用のルールで言えば、プログラマーを文法で縛る規制により、
      実行時の安全性とメモリを冗長に使う所をコンパクトに効率化を
      プログラマーにプレゼントしてるとも思う。
      とは言うモノの僕はRUSTをまだコーディングしてないですが。
      =======================================
      入門者泣かせな言語にも感じます。まあ入門者泣かせの言語はいっぱいありますが。

    • @kazuselen
      @kazuselen 4 หลายเดือนก่อน +2

      @@takasan_ino C言語は自由度が高いと言うけど、自由度が高い=読みにくいではない
      プログラムでやりたいことの流れが読み取りやすければ自由度が高い言語でも読みやすいし、流れが読み取りづらい言語は自由度が低くても読みにくい
      最近の言語は安全のために文法を複雑にしてることもあって意外とC言語より読みにくい

    • @moroha10085
      @moroha10085 4 หลายเดือนก่อน +1

      最近の言語のほうがIDEでの利用を前提としている分、素のコードが読みづらいのは事実としてあると思います。例えば、C言語はすべて明示的に型を書く必要がありますが、Rustは強力な型推論をもつ言語なので、明示的に型を書く必要がありません。その結果、一見すると動的型付け言語のようなある種の見通しの悪さが生まれる……みたいなことはあると思います。もちろん、IDEを適切に使えば推論された型が表示されるので問題ないのですが。

  • @lonrwin8789
    @lonrwin8789 ปีที่แล้ว +3

    プログラミングの進化はプログラムを機械語に翻訳するコンパイラの進化とも思う、それで人と機械が近くなった
    果てはchatGPTのようなAIによって自然言語でプログラムできるようになっていくのかな、インターステラーのロボットみたいに

  • @sabak7390
    @sabak7390 ปีที่แล้ว +6

    初心者の頃、何も知らずにフローチャートを書いたら、自然とスパゲッティーコードになった記憶があるので、
    アルゴリズムを考える上で構造化定理の原則を適用することは必ずしも人間には自明でないことなのかもしれないですね。
    当時のコンパイラは最適化なんて全く効いてないといっても過言ではなかったでしょうから、
    その時代の人たちはgoto文を排除することで起きるパフォーマンスの低下をどのように考えたのかなど、
    気になることが色々ありますね。

    • @早川眠人
      @早川眠人 ปีที่แล้ว +3

      FORTRANなどは、かなり初期から最適化が進んでいた。ループ中の演算をベクター命令にしたりしていた。構造化されたプログラムは、コンパイラにとっても局所最適化の対象を見つけ易く寧ろ歓迎されていた。

  • @なかじま-o4m
    @なかじま-o4m 10 หลายเดือนก่อน

    深掘をちゃんと手偏で書いてくれている堀元さんに好感が持てる

  • @nagasesion
    @nagasesion ปีที่แล้ว +1

    機械語のjmpは,CPUに依存するけど大抵かなりプリミティブで,「レジスタの値が0なら,ラベル地点へジャンプ」しか能が無いので,比較して大きければをやりたいとなると,引き算して0以下になるかどうか,みたいな処理をする必要があって更に3ステップぐらい分割される印象がある.

  • @かとうしんや-l5q
    @かとうしんや-l5q ปีที่แล้ว +1

    これが合ってるのかどうか分からないけど、
    go to文を使わないようにすると、コードの記述の中にある程度「時間性」を保つことができるから、より人間にとって分かりやすくなったってことなのかな(go to文を使うと「順次」のルールが守れない)。
    で、go to文が含まれる一連の処理は、「選択」もしくは「反復」処理になっているから、
    go to文を禁止にする→順次、選択、反復の3つのルールを守るってことになってるのか。

  • @laystorin123
    @laystorin123 ปีที่แล้ว

    私の頭の中では
    処理を1つの流れの中で全部やっていたのが初期のプログラミング
    処理をまとめてオブジェクト化して個別処理するのが1つのパラダイムシフト
    そのオブジェクトがマルチタスクで並行して動くのが2つ目のパラダイムリスト
    最後に、各処理が別マシン(DB、サーバ、クライアント等)で分割処理するのが現状ですかね

  • @applejack0094
    @applejack0094 ปีที่แล้ว +3

    大学(農学部)のプログラミングの授業でc言語やってる時に先生からgotoはやめろって言われて当時はよくわかんなかったけど、よくわかりました

  • @MrDeho666
    @MrDeho666 ปีที่แล้ว +1

    「軸足に置くものを変えたという意味でも」という言及が47:27にあるけれど、むしろそれがパラダイム・シフトなのかなと思ったり。

  • @shigecky
    @shigecky ปีที่แล้ว +11

    「宗教改革」
    待ちに待った「プリン」の対義語が出た

  • @gamma9472
    @gamma9472 ปีที่แล้ว

    宗教改革は、それまでは聖職者の解釈という媒介物を介してしか教義の本質(聖書の記述)に触れられなかったのが、誰もが聖書に直接アクセスできるようになったという変化なので、プログラミング言語の進歩とは逆の変化じゃないですか?
    プログラミング言語はコンピュータ内部の処理を意識しなくてもよくなるように進歩しているので、宗教のたとえで言うなら、聖書の抽象的な記述を日常的な言葉に変換してわかりやすく説明してくれる優秀な聖職者が現れたという状況だと思います。

  • @matanki153cm
    @matanki153cm ปีที่แล้ว +1

    12:31 Knuth subway🚇 これ拡大したんですけど・・・もしかして手書きなのかしら・・・ひぇー・・・
    水野さんが指摘されたインデントによる構造の視覚化と自然言語の文法処理との関連性、なんだかんだ堀元さん含め多くのプログラム経験者になると、自然言語を書く際にも文章を構造化する癖がつくんじゃないかと思います。並列的なパーツは同じインデントにいないとキモいよな~っていう感覚が、直列化した文章を記述する際にもセンサーとして働いたり、箇条書きにまとめるのがうまくなったり・・・

  • @user-takoyakidaisuki
    @user-takoyakidaisuki ปีที่แล้ว +4

    何番に飛ぶって昔よく本屋に並んでたゲームブックに似てますね。このアイテムを使うなら581へ、みたいな。

  • @あいうえおかきくけこ-u5p
    @あいうえおかきくけこ-u5p ปีที่แล้ว +4

    なんとかゆきさんとかなんとか斗司夫さんの切り抜きでよく見かける奴だ
    なんとかゆき「質問者さんは〇〇なので☓☓するよりも△△したほうがいいと思いますね」
    切り抜き「☓☓する人は馬鹿です!!△△しろ」

  • @はぎのつき-q3j
    @はぎのつき-q3j ปีที่แล้ว

    ところで自分は、構造化プログラミングを叩き込まれた後に、別の職場でマシン語を書いた。
    この時は、条件分岐やループ構造をマクロで準備して、マシン語で構造化プログラミングしたものです。
    でもマシン語で何が面倒って、掛け算や割り算を含む計算が・・・

  • @thesaito2721
    @thesaito2721 ปีที่แล้ว +5

    オブジェクト指向というと活版印刷の発明かな?
    40〜50代のマイコンマニアはベーシックの洗礼を受けてるからこな最初のパラダイムシフト前の思想から抜け出せないよね、はい私です

  • @砂川朝恭-l2d
    @砂川朝恭-l2d ปีที่แล้ว +3

    次回のオブジェクト指向楽しみだな🙆‍♂️

  • @unun2621
    @unun2621 ปีที่แล้ว

    プログラミング学び始めのほんとに最初のころに、なんでここに戻るっていう書き方はできないんだ!って思った記憶があったことを思い出した
    今はすっかり染まってしまったことを考えると、GOTOはなくても問題ない余計な表現なのに、自然言語で指示するときは自然な表現なので使ってしまうのかもしれない

  • @hidef1321
    @hidef1321 ปีที่แล้ว +4

    オブジェクト指向命名者アラン・ケイにどこまで比重を置くかで、たとえ話も変わってくるなぁ。

  • @BigProblemExplained
    @BigProblemExplained ปีที่แล้ว

    41:09 ここで堀元さんが紹介しているアプリの名前をご存知の方いらっしゃいますか?

    • @シロヤギ-c1v
      @シロヤギ-c1v ปีที่แล้ว

      Rewind AIでは?まだリリースされてないようです。

  • @doyanizado
    @doyanizado ปีที่แล้ว +3

    ノイマン型アーキテクチャも、当時の技術者は大体同じようなことを思っていてノイマンはそれをまとめただけという話も大学の講義で聞いたことあります。(もちろんまとめる功績も偉大ですが

    • @MedakaNoBoo
      @MedakaNoBoo ปีที่แล้ว +1

      わかりやすい表現としてだろうね。ノイマンの功績は数学での証明にあったと思うよ

  • @akai_000
    @akai_000 7 หลายเดือนก่อน

    処理フローチャートが地下鉄みたいっていう場面がありましたが、現在の路線図の表現形式を作り出したのはハリー・ベックさんというロンドン地下鉄の信号整備エンジニアの人だったらしいので、何か通じるものがあるのかもですね

  • @おおぼとけ
    @おおぼとけ ปีที่แล้ว +1

    表記体系の話は、慣例読みを思い出しました。口頭の単語(音列としての単語)上位だった時代のもので、表記ありきの現代ではもうほとんど起こらない現象ですね
    難読地名が読みにくいというだけで改変されていくのは歴史が消えていくみたいで悲しい気持ちになります

    • @isamich1535
      @isamich1535 ปีที่แล้ว

      地名については、「読みにくい」というか、呼ばれていたものに後から漢字を当てたのがほとんどだと思うので、漢字が変わるのはやむを得ないのかな?

  • @あいうえお-x1j7f
    @あいうえお-x1j7f ปีที่แล้ว

    実際に最初期の高水準プログラミング言語ALGOLはわかりやすい表現方法としてチョムスキーの文脈自由文法を参考にしてる
    チョムスキーの生成文法は代数学によって自然言語を説明する試みだからアルゴリズムを人間にわかりやすく表現したいっていうプログラミング言語のニーズにどんぴしゃだしね

  • @和歌山みかん-z7p
    @和歌山みかん-z7p ปีที่แล้ว +1

    水野さんは1次元的に表現するしかないというけど 本の目次も2次元的表現してる

    • @cdr6281
      @cdr6281 ปีที่แล้ว +1

      目次を音読してみてください。適切なポーズを取らないと読めないはずですよ。それがインデントの代わりです。

  • @ptptsoushu
    @ptptsoushu 8 หลายเดือนก่อน +1

    Fortranでgoto使いまくってましたが、しばらくプログラミング離れてC言語に戻ってきたら、goto使っちゃいけないの!それでプログラム作れるのって驚いたことを思い出しました。 でもそれが普通になった今この動画見て、なんでgoto必要だったんだろうと思います。

  • @ティコ-ブラーエ
    @ティコ-ブラーエ ปีที่แล้ว +2

    世の中に「文字しかない(発音を持たない)自然言語」ってないんですかね
    (まぁなさそう)
    自然言語は
    音声▶︎文字
    の流れでできてるから文字も音声と同じように線状性を待ってるけど、
    「2つの発音を同時にできない」って音声で喋るからその縛りが発生するわけで、文字には線状性っていらないのでは?と思って、
    そこから
    プログラミング言語が線状性を持たない、2次元的な書き方ができるのは、「音声で読み上げない」言語だから可能になってる訳だから
    もし万が一音声を持たずに文字だけの自然言語があったら2次元的な表記になってもおかしくない、、??とか思いました
    (多分ありえないですけど)

    • @gutsnosada
      @gutsnosada ปีที่แล้ว +1

      口の二次利用を行わない、著作権に配慮した言語ですね

    • @天才の証明
      @天才の証明 ปีที่แล้ว +2

      文字と言うかは置いといて、発声持たない言語に手話が存在するよ

  • @user-Ringo331
    @user-Ringo331 ปีที่แล้ว

    鉄道って戦争物資輸送なん?
    最初ってイギリスのマンチェスター-リバプール間の資源輸送用じゃなかったっけ?

  • @おおぼとけ
    @おおぼとけ ปีที่แล้ว +7

    漢文もレ点と一二点で事足りてるもんなあ

  • @SYALIREA
    @SYALIREA ปีที่แล้ว +3

    水野「若手の頃は言われましたよ(若手)」

  • @manbongo1588
    @manbongo1588 7 หลายเดือนก่อน

    人間が胎児の時、大脳ニューロンが極大になってなんでも覚えられる状態だけれど
    成長とともにどんどんニューロンは減っていって出来ることが制限されることで人間として洗練された可能性が広がる、みたいな話を思い出しました

  • @mariel0171
    @mariel0171 ปีที่แล้ว +3

    そういえば、ナーシャ・ジベリは住所マスターでもあったな・・・。

  • @mojyamojyas_room
    @mojyamojyas_room 3 หลายเดือนก่อน

    15:14 水野さんが堀本さんの事を「仲のいい友達」っていうの素敵すぎる。

  • @にゃんこくん
    @にゃんこくん ปีที่แล้ว

    24:48 選択より分岐のほうが一般的ですかね?

    • @和歌山みかん-z7p
      @和歌山みかん-z7p ปีที่แล้ว +2

      ??? 概念が違うでしょう?
      選択しないと分岐できないし 分岐するなら選択は必須

  • @millipferd
    @millipferd ปีที่แล้ว +2

    ダイクストラはスペル覚えたら何人か覚えられる
    彼の名前のスペルは "Dijkstra" なんだけど、 "ij" を アイ と読むのはオランダ語…と覚えれば良い(何の知識?)

  • @kensuketomioka2321
    @kensuketomioka2321 ปีที่แล้ว +9

    ポケモンを使うとプログラミングの説明がしやすそうです
    オブジェクト指向の説明にも適してそうですね(e.g. ポケモン一般→種族としてのピカチュウ→手持ちのピカチュウ と変数やメソッドが継承される)

  • @pipirupiru3
    @pipirupiru3 7 หลายเดือนก่อน +1

    「テッド・チャンのネタバレあります」ってでかでかと書いておいて、何ならスキップできるようチャプターもつけておいてほしい。

  • @高円寺まどか
    @高円寺まどか ปีที่แล้ว +1

    今回もおもしろかったです

  • @大地繁
    @大地繁 ปีที่แล้ว

    goto文を使うなという事でここまで話せるとは凄い。goto文はアセンブリ言語では使いまくるけど、C以後だと、あえてwhile文にてbreakやcontinueを強引に使う事で実現してたりしますね。

    • @kazuselen
      @kazuselen 4 หลายเดือนก่อน +2

      まあ、ダイクストラは「読みにくくなるのに強引にgotoを排除するくらいなら使った方がいい」と言ってるんやけどな

    • @大地繁
      @大地繁 4 หลายเดือนก่อน

      @@kazuselen そうですか。もう忘れましたよ。

  • @tamarind_kingdom
    @tamarind_kingdom ปีที่แล้ว +3

    音声言語が文字を持つときに、文字に表現されるものと文字に表現されずに削ぎ落とされるものがどう決まるのか気になる

    • @早川眠人
      @早川眠人 ปีที่แล้ว

      ブとヴを書き分けるべきなのか、間(ま)をどう書くべきなのか……

  • @TAKOYAGl
    @TAKOYAGl ปีที่แล้ว

    息吹面白そうだったので他の欲しかった本に混ぜて早速買いました!

  • @brokenRadio1219
    @brokenRadio1219 ปีที่แล้ว +1

    待ってたました

  • @長門有希-j5e
    @長門有希-j5e ปีที่แล้ว +5

    世界史たとえは大体フランス革命って言っておけば当たる

    • @MedakaNoBoo
      @MedakaNoBoo ปีที่แล้ว +1

      世界史たとえは大抵イギリス産業革命って言っておけば当たる……

  • @masahikak
    @masahikak ปีที่แล้ว +1

    go to 使わないと書けない、とおもってたのは当時の幼い自分はBAISCのせいだと思ってました。Cを使うようになって自然とgo to使わなくなったから

  • @satoru3893
    @satoru3893 ปีที่แล้ว +1

    キリスト教はCSの例えに絶妙に親和性が高くてオモロい

  • @akinaka7543
    @akinaka7543 ปีที่แล้ว +1

    12:23 そうなのよねえ。パラダイムシフトしないと、なんぼ図解しても判り易くならないのよね…(遠い目

  • @takaborn
    @takaborn 7 หลายเดือนก่อน

    29:48 「階層化することで一次元の文なのに二次元になってる」Aha, 超多次元のLLMが相転移で異次元に賢くなったことに繋がるのかも?

  • @rintya1518
    @rintya1518 ปีที่แล้ว +1

    マイコン管理で番地管理参照をまとめる役職が部活にあった

  • @gochuui1
    @gochuui1 ปีที่แล้ว +1

    そもそも線状性を次元のひとつとして考えて良いのだろうか?
    我々は3次元空間に時間を加えた時空に生きているわけだが、
    言語は1次元のスタック領域(≒記憶領域)に時間を加えた時空で理解される
    ・・・いや、今回吐き捨てられた順次性がない次どこ飛ぶか分からんソースの闇ガガガ

  • @leomt1314
    @leomt1314 ปีที่แล้ว +3

    ルールの発明って重要なんやな

  • @白梅みさと
    @白梅みさと ปีที่แล้ว +9

    明石家さんまさんが「☓ペケ」をおでこに書いた後、「☓1」のハードルが下がり時代が大きく動いた。

  • @lefthand3754
    @lefthand3754 ปีที่แล้ว +2

    今まさに、エンジニアリングはAIがやる時代へのパラダイムシフトが始まってるのかもです

    • @MedakaNoBoo
      @MedakaNoBoo ปีที่แล้ว

      AGIのパラダイムシフトは「たまにウソをつく」ことじゃないかなあ。呪文から相手が喜びそうな答えを見つけ出してくる。つまり、人間のウソ(建前と本音)を学習してゆく子どもが「善悪を判断しウソを使い分ける」ができるようになる過程をみているような気がする。

  • @Visual_Vitamin
    @Visual_Vitamin 7 หลายเดือนก่อน

    gotu命令懐かしい、当時、BASIC言語をかじっていたので、gosubとごっちゃなって、苦労した覚えがあります。

  • @ユタカ-y8p
    @ユタカ-y8p ปีที่แล้ว +2

    待ってた

  • @SonodaMai74
    @SonodaMai74 ปีที่แล้ว +1

    自然言語でインデントのような要素を入れるとしたら、で、
    インデントが1段深くなるタイミングで声の高さを1段階高くするみたいなのを連想した😅

  • @nakanaka3
    @nakanaka3 ปีที่แล้ว +13

    二人の会話も隙あらばうんちくにGOTOするから、ちゃんとダイクストラ見習え

    • @hak_fox
      @hak_fox ปีที่แล้ว +2

      while(会話中){
      if(隙がある){
      うんちくを話す;
      }
      }
      なのでちゃんとダイクストラの提言に則ってます!

  • @カトショウ
    @カトショウ ปีที่แล้ว

    今日水野さんの咳片っ端からカットしてる?