「Aは有害である」(A considered harmful)というタイトルそれ自体もバズって、「~は有害である」というタイトルの論文が大量に出て来て、やがて「『~は有害である』は有害である」("Considered harmful" considered harmful)という論文まで出て来たらしい。
30:11 の階層構造の話しに関する例ですけど、構造化プログラミング言語にも最初に階層が曖昧でした。英語でdangling else problemと呼ばれるALGOL言語に起こった問題です。ALGOL以来のプログラミング言語作りに影響される問題です。今のルールはyou should not have an ambiguous grammarみたいで、「ソースコードの捉え方が一つしかない方がいい」といいう意味です。
MSXでBASICを使って、1行ごとに文頭に適当な行番号(10,20,30,40…)を付けて「120 if A = 0 then goto180 else goto 240」みたいなプログラムを書いていた小学生の僕にダイクストラが「そのやり方めっちゃクソやで」って教えてくれていれば今頃ぼくも立派なプログラマになっていたかも知れません。
これが合ってるのかどうか分からないけど、 go to文を使わないようにすると、コードの記述の中にある程度「時間性」を保つことができるから、より人間にとって分かりやすくなったってことなのかな(go to文を使うと「順次」のルールが守れない)。 で、go to文が含まれる一連の処理は、「選択」もしくは「反復」処理になっているから、 go to文を禁止にする→順次、選択、反復の3つのルールを守るってことになってるのか。
「Aは有害である」(A considered harmful)というタイトルそれ自体もバズって、「~は有害である」というタイトルの論文が大量に出て来て、やがて「『~は有害である』は有害である」("Considered harmful" considered harmful)という論文まで出て来たらしい。
「買ってはいけない」に対する「『買ってはいけない』は買ってはいけない」みたい。
めちゃくちゃいいうんちく!!
9割本、本質本みたいなのがいつの世にもあるんですね…
黒島先生が収集するやつー!
『環境問題のウソ』って本が流行ったあと、『環境問題のウソのウソ』って本が出たのと似たものを感じる。
12:35
このフローチャート見て「美しい」「なんてわかりやすいんだ」と思っていた世代です。懐かしいです。
構造化プログラミングが「自由度の高いはずのジャンプ命令をあえて禁止したことで、かえってプログラミング言語のパラダイムシフトに発展した」のも面白いけど、
21:34 の水野さんの話を引用して「ジャンプ命令を禁止することを実は多くの人々も望んでいて、それが広まる土壌があった」から受け入れられたというのも面白いところだと思う。
プログラミングをやっている身としてはgo to等のジャンプは極めてスパゲティコードになりやすい
結局のところ、コードを読む時に人は上から下へ読むと言う方向性がジャンプ禁止したいと言う欲求の根源だと思う
義務教育にプログラミングを入れると論理的思考力が身につくと言われる理由を、
プログラミング素人の水野さんが初見でコンピューターサイエンティストより上手く説明できていることに皮肉を感じる。
こういう番組の登録者が5万余りいるのが、昔々趣味でマシン語書いてた身としては嬉しい。
絶対番地にジャンプする大きなデメリットの一つは、デバッグ後に処理を追加することになったらそれ以降の番地が一斉にずれること。その修正が大きな手間だった。(処理が減った場合は NOPなど「何も処理しない命令」を埋めたりして一時しのぎしたり、そうすると貴重なメモリを無駄遣いすることになったりとか)
何もかもが皆懐かしい・・・
相対ジャンプを使えば多少は・・・修正箇所が減る・・・
うん、なつかしい;;
JP と JR でしょうか。 < Z80が大好きだった
@@SonodaMai74 私もZ80(PC-6001)で育ちました。そもそもCPUという「計算機」でゲームができるのがなぜなのかわからなくて、市販のゲームを全部「レポート用紙にハンド逆アセンブル」したのが私の基礎知識の一部になってるのは間違いない。それを全部解析して理解したときは仕組みに激感動した。今も忘れない思い出。
初めてこのチャンネルを見ましたが、こういうのを待ってましたという感じです!
本職SEですが、ITの勉強ができてゆるく家事とかしながらラジオ感覚で聞けるの無いかなと思っていました。普通に解説している動画とかはあると思うんですけど、講義形式の動画はよし勉強するぞと腰を据えないといけなくて結局見なくなっちゃうんですよね。
例え話や脱線、いいと思います。色んな知識が組み合わさって楽しく聞けるというのがこのチャンネルの良いところだと思うので、むしろ自然言語に例えたり、関係のないSFの話をするくらいのほうがラジオ感覚で気楽に聴けると思います。
関係ないですが水野さんの声は後藤達也さんに似ていますね。
だいたいどの言語でも、
変数と関数の定義に加えてif for while の構文が書けたら最低限使えるけど、それが偶然じゃなくて、あらゆるフローチャートを記述できると数学的に証明されてるのは面白いな
処理に順序があって関数の自己呼び出しができるならifだけでチューリング完全
ゆるコンピュータ科学ラジオあるある
・脇道、脇道の脇道と逸れていっても、ちゃんと階層を把握していて正しく戻ってこれる堀元さん
・goto文で台本ブレイクする水野さん
gotoで無理やり戻ってる気もする
「制限すると表現の幅が増える」
「制限するとできることが増える」って言うのは、数学でも同じですね〜
一般の位相空間を距離空間に制限すると、距離が使えるのでできることが増えるんですよね。
抽象的な議論は普遍的だけど言える内容は少ない。
具体的な話に制限すると限定的だけど言えることが多い。
みたいなことですかね。
他にもたとえば抽象的な集合論で議論できる命題は少ないけど、より具体的に群、体、ベクトル空間って話を制限してくと言える命題は多くなる。言葉をお借りすると、できることが増える
江戸川ダイキストラ「go toは害悪だから〜」
はただのコロナ政策批判で笑う
名前からバシバシ来る泡沫政党のヤバい奴感
学生の頃、プログラミングをやってる友人が自主ゼミのとき数学でインデントを使ってましたね。長い証明のときは「Aを証明するための、補題Bを証明するための、場合b1のときの……」みたいになって、何の証明してるんだ?になりがちなので、何にせよ階層性を意識するのは人間の認知にあってるのかも
C言語は、今でこそ「マシン語の次レベルの言語の代表格」みたいな扱いだけど、
それは「鳥類は代表的な恐竜」みたいな話で、登場当時のC言語はいっぱいあるうちの1つに過ぎなかったんだよな。
>今でこそ「マシン語の次レベルの言語の代表格」
「今でこそ」……1980年代半ばにはもうそんなじゃなかったですか?
高速化が必要なところでは適宜C言語からアセンブラに切り替えてコードを書くということがしやすかったからですね。
アセンブラの領域もC言語の領域もだいぶ減ったよなとは
C言語が未だに高級言語に分類されてることに違和感を持つ人はかなり多いんじゃないか
もはやアセンブラは超低級、Cが低級くらいの方が感覚にあってる
出てくる喩えが極めて正確ですね。お二人の聡明さが滲み出ている。
昔、アメリカの専門雑誌を読んでいる先輩が「プログラムはGOTO文を使ってはいけないんだ」と言っていて、「GOTO文を使わなきゃプログラムは作れないじゃないか!何を言ってるんだ?」と思いました。それから数年たち、日本でもGOTO文なしプログラムは当たり前になりました。
持ってる情報と閃きだけで構造化プログラミングのほぼ回答を持ってくるとは…!
最後のまとめの部分から、最近はやりのChatGPTも元を正せば
よりナチュラルな自然言語を機械語に変換して実行されているあたり、
より機械中心主義から人間中心主義になったとも考えられて面白い動画でした
水野さんに一度C言語入門をしてもらって、世間で難しいと言われるポインタとかをどう理解するか、各概念にどう反応するかを見てみたいな。堀元さんの説明の仕方にもよるだろうけど、プリンとか言い出さない限りサクッといけそう
個人的な宗派としてはRustに入門してもらいたいが
自分は情報よりの人間なのですが、こうやってある程度言語学の知見がある人の視点が面白すぎて無限に見れる
機械語のジャンプは昔よくあったゲームブックみたいだな。RPGがテーマだったりする子供向けの本で
この行動Aをするなら何ページに飛ぶ。この行動Bをするなら何ページに飛ぶってのがたくさん書いてあって物語が分岐する。
機械語を知らないんだけど、実際には機械語は命令自体もアドレスで表されるのかな。しかも2進数だったり16進数で書くのかな?かなり大変そう。
アドレスに命令が入ってる感じ
その命令を16進数表記とかで記す感じだね
@@天才の証明
教えてくださってどうもありがとうございます。とても難しいんですね
18:16 「GoTo文に代わる一手法」→「GoTo文は有害である☆」は草
30:11 の階層構造の話しに関する例ですけど、構造化プログラミング言語にも最初に階層が曖昧でした。英語でdangling else problemと呼ばれるALGOL言語に起こった問題です。ALGOL以来のプログラミング言語作りに影響される問題です。今のルールはyou should not have an ambiguous grammarみたいで、「ソースコードの捉え方が一つしかない方がいい」といいう意味です。
息吹を読んで、
「思い出は全部記憶しているけどね、記憶は全部は思い出せないんだ」
という言葉の深さを改めて感じましたw by高校生
「すべてがFになる」より引用
プログラミング的思考とかプログラミング教育とかやってる人たちが「順次処理、条件分岐、繰り返し」とよく言ってるのは、このダイクストラさんの話がベースになってるのか。
楽しみに待ってました
38:50 堀元が『息吹』にgotoした瞬間
オブジェクト指向言語へのパラダイスシフトは、個人経営で仕入れから陳列、会計まで一人で何でもやってた八百屋さんが、スーパーマーケットに変わってそれぞれの業務を専任の担当者がこなす様になった感じだと思う。
忙しい部署に人を増やしたり、暇になったら簡単に首切れる様になった。
あと他(違うプログラム)からも専門性を持った人を即戦力としてリクルートしやすくなった。
Afterism発現。
蒸気機関(マルチスレッド)の普及による、仕事の分業化(オブジェクト指向)。
つまり、オブジェクト指向は産業革命だ!
エウレカ!
これはゆる言語ラジオのゲーム化の伏線回ですね
「カノッサの屈辱」でフジテレビの深夜番組を思い出す世代
「やあ皆さん、私の研究室へようこそ」懐かしいてすね。学生のころ、池袋でカノッサの屈辱展をやっていて、見に行ったのを覚えています。
39:32 テッドチャンのその物語、その対比を読んでみたいです。歴史を記録したから、負けた国は戦争の戦後の孫までも、戦勝国を恨んだり、戦勝国はずっと上から目線になるのでは?と思ったりしてたので、それをすでに描いた物語があると知ってとても読んで見たくなりました!!
16:41 dijkstraという姓は、北海沿岸のドイツとオランダにまたがる地域を治めていたフリースラント由来の名前らしいです。
で、エドガー・ダイクストラはどちらかというと、オランダ人とのことです。
vbaでやたら大きいプロジェクトをやってた時にコーディング規約でgotoやめろって書いてあったのを思い出しました。いやエラーのときはメッセージ出したいねんなんで禁止なん?って思ってましたけどこれか!パラダイム後だからわからなかったんですね…。
自由を縛ると、楽になったり簡単になったりすることは結構ありそう。
AからBの最短経路の道の一部を取り壊すことで、仕方なく多少遠回りの道にみんながバラけてくれるから、結果渋滞が減った(逆に道を作るを渋滞が増えた)とかある
…ちょっと違うかな
Railsなんかそうですね、細かいルールに従えばフレームワークがよきに計らってくれるやつ。ルールから外れると地獄ですが。
何してもいいよ、何描いてもいいよって言われるのが一番困りますね
「夕飯何でもいいよ」が一番困りますもんね
「鶏肉の消費期限が今日で、人参と玉ネギの半端があって、冷凍ブロッコリーが袋に半分……よし今日はシチュー!」みたいに制限を加えていってメニューを決める日々です
@@keramischmond
今ふと思ったんですけど、晩飯何がいい?って聞かれてる方も自由度高すぎて、何でもいいって答えてしまうのかと…
晩飯、〇〇と◇◇と△△どれがいい?みたいに聞くと答えてくれそう
プログラマーが馬鹿にするVBAも同じで、ループ処理の中にIF分を入れて、分岐でSelectCaseを入れつつ、当てはまらない場合は条件を飛ばして次のループに移行するGoToを差し込むは、何かと便利です。
興味深いですね。確かに図みたいにブロックを見ていることに気付きました。ほとんどのエディタでインデントブロックの補助線が出ますし、2次元的な情報として捉えようとされていますね。ところで次回出てくるかもしれないJavaは goto を予約語としているけどなんもなし、という形で封印していますね。昔、おじさんプログラマがオブジェクト指向もよく分かんねえしgotoも使えねえしよぉみたいなことを言っていたのを思い出しました。あのおじさんもgotoは害悪だと深層では思っていたのだろうか
マシン語の処理はゲームブックに似てるなと思いました。
N88BASICでGOTOしまくっていたあの頃。時代は流れいつのまにかGOTOが無くなり、パニックになった記憶があります。
21:32 ごく最近のバズりの一つに
いわゆる“ひろゆき現象”があるが、その是非はともかく
この現象も現状に不満を持った人が多くいたという土壌があったからこそ
これほど大きなブームにまでなってしまったんだろうと思う
近い構造だけど少し違う結論を堀元さんがnote(とどっかの雑誌のインタビュー)で話してた気がする
ひろゆきとビジネス書は同じ目的で消費されている、みたいな
Go To Considered Harmfulっていうbe動詞を抜かした書きかたが新聞記事の見出しっぽくて煽りスキル高い
そしてジャンプ地獄から解放された人類は今度はネスト地獄に悩まされるのであった…
関数を適切に分けるんだよ!
次回の堀元さん「オブジェクト指向はマニュファクチュアだ!」
MSXでBASICを使って、1行ごとに文頭に適当な行番号(10,20,30,40…)を付けて「120 if A = 0 then goto180 else goto 240」みたいなプログラムを書いていた小学生の僕にダイクストラが「そのやり方めっちゃクソやで」って教えてくれていれば今頃ぼくも立派なプログラマになっていたかも知れません。
多くの人を動かす時には、制約を設けて秩序を保つ。
プログラミングに限らず世の中のプロジェクトは標準化や規約で成り立ってる。
オブジェクト指向プログラミングは継承して変わっていく感じからダーウィンの進化論あたりかな?
Dijkstraは表記揺れでダイキストラとも書かれることに注意
水野ダイキストラ…
今Rustの学習してるけど、このパラダイムシフトってRustと一緒だ。選択と反復の概念を導入して可読性を上げたのがc言語。所有権と借用の概念を導入してメモリ安全性を上げたのがRust。
>選択と反復の概念を導入して可読性を上げたのがc言語
ちがいます。
選択や反復はC言語以前の高級言語にはとっくに導入されてました。
(C言語よりよほど古いALGOL60にもFORTRAN IVにも当然ある)
可読性はC言語より前に生まれたPascalやCOBOLのほうが上です。
C言語なんてすぐ読みにくくなる言語だからこそ、「国際難読化Cコードコンテスト」とい奇祭があるくらいで。
当時のプログラマには「ソフトウェアの開発技法」というものがまとまっていなかったんですよ。それを、エドガー・ダイクストラやハーラン・ミルズがそれぞれ別個に「構造化プログラミング」を提唱しました。
一般的な”構造化プログラミング”の理解のされかたはミルズのほうに近くて、ダイクストラが提唱したのはもっと範囲が広いものでしたが、ごっちゃにされた。
ダイクストラにとって、goto悪玉論より「構造化プログラミング」が意図しない形でバズり倒したことのほうが気にくわず、後年、ダイクストラはミルズと(Pascal開発者であり「Go To Statement Considered Harmful」に題名を差し替えた犯人でもある)ニクラウス・ヴィルトへの恨み節を書いています。
パラダイムシフトが起きたとすれば「プログラミング言語」ではなく「コーディング手法の確立」なんですよ。
@@minami_alinkoC言語は別に読みにくくないぞ
Rustの方が読みにくいくらい
それに難読化なんてたいていどんな言語でもできるから根拠にもならん
自分にとっての読みやすいと、万人が観て読みやすいは違う。
======================================
C言語は自由度の高い言語です。
高級言語っぽく作りたければ、高級言語っぽく記述出来るようになるし、
自分なりの文法をC言語で記述する事にも、
万能ではないが、記述がある程度、出来はする(デバッグは慣れないと、大変ですが。)
低級言語では機械語で出来る所にメスを入れたい時、
CPUの特性を活かした物凄く速い実行速度も工夫次第で出せる。
(メモリを壊したりもするけど)
C言語は低級言語であり、高級言語でもある。
(ただその後、C++などにより
低級言語に近い記述も出来、
高級言語の色彩の香りを強くした。)
=======================================
RUSTは低級言語のように、実行速度が速く、
メモリを壊さないプログラミング作法を文法面から、
そのルールを創造してるように(安全性の為、縛る基準を設定してるように)見える。
所有権と借用のルールで言えば、プログラマーを文法で縛る規制により、
実行時の安全性とメモリを冗長に使う所をコンパクトに効率化を
プログラマーにプレゼントしてるとも思う。
とは言うモノの僕はRUSTをまだコーディングしてないですが。
=======================================
入門者泣かせな言語にも感じます。まあ入門者泣かせの言語はいっぱいありますが。
@@takasan_ino C言語は自由度が高いと言うけど、自由度が高い=読みにくいではない
プログラムでやりたいことの流れが読み取りやすければ自由度が高い言語でも読みやすいし、流れが読み取りづらい言語は自由度が低くても読みにくい
最近の言語は安全のために文法を複雑にしてることもあって意外とC言語より読みにくい
最近の言語のほうがIDEでの利用を前提としている分、素のコードが読みづらいのは事実としてあると思います。例えば、C言語はすべて明示的に型を書く必要がありますが、Rustは強力な型推論をもつ言語なので、明示的に型を書く必要がありません。その結果、一見すると動的型付け言語のようなある種の見通しの悪さが生まれる……みたいなことはあると思います。もちろん、IDEを適切に使えば推論された型が表示されるので問題ないのですが。
プログラミングの進化はプログラムを機械語に翻訳するコンパイラの進化とも思う、それで人と機械が近くなった
果てはchatGPTのようなAIによって自然言語でプログラムできるようになっていくのかな、インターステラーのロボットみたいに
初心者の頃、何も知らずにフローチャートを書いたら、自然とスパゲッティーコードになった記憶があるので、
アルゴリズムを考える上で構造化定理の原則を適用することは必ずしも人間には自明でないことなのかもしれないですね。
当時のコンパイラは最適化なんて全く効いてないといっても過言ではなかったでしょうから、
その時代の人たちはgoto文を排除することで起きるパフォーマンスの低下をどのように考えたのかなど、
気になることが色々ありますね。
FORTRANなどは、かなり初期から最適化が進んでいた。ループ中の演算をベクター命令にしたりしていた。構造化されたプログラムは、コンパイラにとっても局所最適化の対象を見つけ易く寧ろ歓迎されていた。
深掘をちゃんと手偏で書いてくれている堀元さんに好感が持てる
機械語のjmpは,CPUに依存するけど大抵かなりプリミティブで,「レジスタの値が0なら,ラベル地点へジャンプ」しか能が無いので,比較して大きければをやりたいとなると,引き算して0以下になるかどうか,みたいな処理をする必要があって更に3ステップぐらい分割される印象がある.
これが合ってるのかどうか分からないけど、
go to文を使わないようにすると、コードの記述の中にある程度「時間性」を保つことができるから、より人間にとって分かりやすくなったってことなのかな(go to文を使うと「順次」のルールが守れない)。
で、go to文が含まれる一連の処理は、「選択」もしくは「反復」処理になっているから、
go to文を禁止にする→順次、選択、反復の3つのルールを守るってことになってるのか。
私の頭の中では
処理を1つの流れの中で全部やっていたのが初期のプログラミング
処理をまとめてオブジェクト化して個別処理するのが1つのパラダイムシフト
そのオブジェクトがマルチタスクで並行して動くのが2つ目のパラダイムリスト
最後に、各処理が別マシン(DB、サーバ、クライアント等)で分割処理するのが現状ですかね
大学(農学部)のプログラミングの授業でc言語やってる時に先生からgotoはやめろって言われて当時はよくわかんなかったけど、よくわかりました
「軸足に置くものを変えたという意味でも」という言及が47:27にあるけれど、むしろそれがパラダイム・シフトなのかなと思ったり。
「宗教改革」
待ちに待った「プリン」の対義語が出た
宗教改革は、それまでは聖職者の解釈という媒介物を介してしか教義の本質(聖書の記述)に触れられなかったのが、誰もが聖書に直接アクセスできるようになったという変化なので、プログラミング言語の進歩とは逆の変化じゃないですか?
プログラミング言語はコンピュータ内部の処理を意識しなくてもよくなるように進歩しているので、宗教のたとえで言うなら、聖書の抽象的な記述を日常的な言葉に変換してわかりやすく説明してくれる優秀な聖職者が現れたという状況だと思います。
12:31 Knuth subway🚇 これ拡大したんですけど・・・もしかして手書きなのかしら・・・ひぇー・・・
水野さんが指摘されたインデントによる構造の視覚化と自然言語の文法処理との関連性、なんだかんだ堀元さん含め多くのプログラム経験者になると、自然言語を書く際にも文章を構造化する癖がつくんじゃないかと思います。並列的なパーツは同じインデントにいないとキモいよな~っていう感覚が、直列化した文章を記述する際にもセンサーとして働いたり、箇条書きにまとめるのがうまくなったり・・・
何番に飛ぶって昔よく本屋に並んでたゲームブックに似てますね。このアイテムを使うなら581へ、みたいな。
なんとかゆきさんとかなんとか斗司夫さんの切り抜きでよく見かける奴だ
なんとかゆき「質問者さんは〇〇なので☓☓するよりも△△したほうがいいと思いますね」
切り抜き「☓☓する人は馬鹿です!!△△しろ」
ところで自分は、構造化プログラミングを叩き込まれた後に、別の職場でマシン語を書いた。
この時は、条件分岐やループ構造をマクロで準備して、マシン語で構造化プログラミングしたものです。
でもマシン語で何が面倒って、掛け算や割り算を含む計算が・・・
オブジェクト指向というと活版印刷の発明かな?
40〜50代のマイコンマニアはベーシックの洗礼を受けてるからこな最初のパラダイムシフト前の思想から抜け出せないよね、はい私です
次回のオブジェクト指向楽しみだな🙆♂️
プログラミング学び始めのほんとに最初のころに、なんでここに戻るっていう書き方はできないんだ!って思った記憶があったことを思い出した
今はすっかり染まってしまったことを考えると、GOTOはなくても問題ない余計な表現なのに、自然言語で指示するときは自然な表現なので使ってしまうのかもしれない
オブジェクト指向命名者アラン・ケイにどこまで比重を置くかで、たとえ話も変わってくるなぁ。
41:09 ここで堀元さんが紹介しているアプリの名前をご存知の方いらっしゃいますか?
Rewind AIでは?まだリリースされてないようです。
ノイマン型アーキテクチャも、当時の技術者は大体同じようなことを思っていてノイマンはそれをまとめただけという話も大学の講義で聞いたことあります。(もちろんまとめる功績も偉大ですが
わかりやすい表現としてだろうね。ノイマンの功績は数学での証明にあったと思うよ
処理フローチャートが地下鉄みたいっていう場面がありましたが、現在の路線図の表現形式を作り出したのはハリー・ベックさんというロンドン地下鉄の信号整備エンジニアの人だったらしいので、何か通じるものがあるのかもですね
表記体系の話は、慣例読みを思い出しました。口頭の単語(音列としての単語)上位だった時代のもので、表記ありきの現代ではもうほとんど起こらない現象ですね
難読地名が読みにくいというだけで改変されていくのは歴史が消えていくみたいで悲しい気持ちになります
地名については、「読みにくい」というか、呼ばれていたものに後から漢字を当てたのがほとんどだと思うので、漢字が変わるのはやむを得ないのかな?
実際に最初期の高水準プログラミング言語ALGOLはわかりやすい表現方法としてチョムスキーの文脈自由文法を参考にしてる
チョムスキーの生成文法は代数学によって自然言語を説明する試みだからアルゴリズムを人間にわかりやすく表現したいっていうプログラミング言語のニーズにどんぴしゃだしね
水野さんは1次元的に表現するしかないというけど 本の目次も2次元的表現してる
目次を音読してみてください。適切なポーズを取らないと読めないはずですよ。それがインデントの代わりです。
Fortranでgoto使いまくってましたが、しばらくプログラミング離れてC言語に戻ってきたら、goto使っちゃいけないの!それでプログラム作れるのって驚いたことを思い出しました。 でもそれが普通になった今この動画見て、なんでgoto必要だったんだろうと思います。
世の中に「文字しかない(発音を持たない)自然言語」ってないんですかね
(まぁなさそう)
自然言語は
音声▶︎文字
の流れでできてるから文字も音声と同じように線状性を待ってるけど、
「2つの発音を同時にできない」って音声で喋るからその縛りが発生するわけで、文字には線状性っていらないのでは?と思って、
そこから
プログラミング言語が線状性を持たない、2次元的な書き方ができるのは、「音声で読み上げない」言語だから可能になってる訳だから
もし万が一音声を持たずに文字だけの自然言語があったら2次元的な表記になってもおかしくない、、??とか思いました
(多分ありえないですけど)
口の二次利用を行わない、著作権に配慮した言語ですね
文字と言うかは置いといて、発声持たない言語に手話が存在するよ
鉄道って戦争物資輸送なん?
最初ってイギリスのマンチェスター-リバプール間の資源輸送用じゃなかったっけ?
漢文もレ点と一二点で事足りてるもんなあ
水野「若手の頃は言われましたよ(若手)」
人間が胎児の時、大脳ニューロンが極大になってなんでも覚えられる状態だけれど
成長とともにどんどんニューロンは減っていって出来ることが制限されることで人間として洗練された可能性が広がる、みたいな話を思い出しました
そういえば、ナーシャ・ジベリは住所マスターでもあったな・・・。
15:14 水野さんが堀本さんの事を「仲のいい友達」っていうの素敵すぎる。
24:48 選択より分岐のほうが一般的ですかね?
??? 概念が違うでしょう?
選択しないと分岐できないし 分岐するなら選択は必須
ダイクストラはスペル覚えたら何人か覚えられる
彼の名前のスペルは "Dijkstra" なんだけど、 "ij" を アイ と読むのはオランダ語…と覚えれば良い(何の知識?)
ポケモンを使うとプログラミングの説明がしやすそうです
オブジェクト指向の説明にも適してそうですね(e.g. ポケモン一般→種族としてのピカチュウ→手持ちのピカチュウ と変数やメソッドが継承される)
「テッド・チャンのネタバレあります」ってでかでかと書いておいて、何ならスキップできるようチャプターもつけておいてほしい。
今回もおもしろかったです
goto文を使うなという事でここまで話せるとは凄い。goto文はアセンブリ言語では使いまくるけど、C以後だと、あえてwhile文にてbreakやcontinueを強引に使う事で実現してたりしますね。
まあ、ダイクストラは「読みにくくなるのに強引にgotoを排除するくらいなら使った方がいい」と言ってるんやけどな
@@kazuselen そうですか。もう忘れましたよ。
音声言語が文字を持つときに、文字に表現されるものと文字に表現されずに削ぎ落とされるものがどう決まるのか気になる
ブとヴを書き分けるべきなのか、間(ま)をどう書くべきなのか……
息吹面白そうだったので他の欲しかった本に混ぜて早速買いました!
待ってたました
世界史たとえは大体フランス革命って言っておけば当たる
世界史たとえは大抵イギリス産業革命って言っておけば当たる……
go to 使わないと書けない、とおもってたのは当時の幼い自分はBAISCのせいだと思ってました。Cを使うようになって自然とgo to使わなくなったから
キリスト教はCSの例えに絶妙に親和性が高くてオモロい
12:23 そうなのよねえ。パラダイムシフトしないと、なんぼ図解しても判り易くならないのよね…(遠い目
29:48 「階層化することで一次元の文なのに二次元になってる」Aha, 超多次元のLLMが相転移で異次元に賢くなったことに繋がるのかも?
マイコン管理で番地管理参照をまとめる役職が部活にあった
そもそも線状性を次元のひとつとして考えて良いのだろうか?
我々は3次元空間に時間を加えた時空に生きているわけだが、
言語は1次元のスタック領域(≒記憶領域)に時間を加えた時空で理解される
・・・いや、今回吐き捨てられた順次性がない次どこ飛ぶか分からんソースの闇ガガガ
ルールの発明って重要なんやな
明石家さんまさんが「☓ペケ」をおでこに書いた後、「☓1」のハードルが下がり時代が大きく動いた。
今まさに、エンジニアリングはAIがやる時代へのパラダイムシフトが始まってるのかもです
AGIのパラダイムシフトは「たまにウソをつく」ことじゃないかなあ。呪文から相手が喜びそうな答えを見つけ出してくる。つまり、人間のウソ(建前と本音)を学習してゆく子どもが「善悪を判断しウソを使い分ける」ができるようになる過程をみているような気がする。
gotu命令懐かしい、当時、BASIC言語をかじっていたので、gosubとごっちゃなって、苦労した覚えがあります。
待ってた
自然言語でインデントのような要素を入れるとしたら、で、
インデントが1段深くなるタイミングで声の高さを1段階高くするみたいなのを連想した😅
二人の会話も隙あらばうんちくにGOTOするから、ちゃんとダイクストラ見習え
while(会話中){
if(隙がある){
うんちくを話す;
}
}
なのでちゃんとダイクストラの提言に則ってます!
今日水野さんの咳片っ端からカットしてる?