1. readline.fm
  2. EP163 プログラマが知るべき97..
2026-02-02 19:18

EP163 プログラマが知るべき97のこと PART1

spotify apple_podcasts

## とりあげた本


『プログラマが知るべき97のこと』オライリー・ジャパン 2010


## mixi2


https://mixi.social/communities/513e0bc9-582b-4962-a9c1-c5c076175e08/about


## ShowNote

https://gennei.notion.site/EP163-97-PART1-2fac645d49118003a29fecb425a313f6

サマリー

ポッドキャストでは、プログラマーが知るべき97のこと、通称「キノコ本」について議論しています。この本がプログラミングに対する意識や考え方をどのように変えたか、また時代背景やクリエイティブコモンズについても触れています。エピソードでは、関数型プログラミングの重要性とその利点が説明され、特にマルチコアプロセッサの進化に伴う関心の高まりが強調されます。また、異なるプログラミング言語を学ぶことの価値が再確認されています。

キノコ本の紹介
スピーカー 1
こんにちは、readline.fmです。readline.fmは、つんどくが趣味の2人が何かの本を読んだ感想を雑談するポッドキャストです。
ハッシュタグは、ハッシュリードライン fm です。ミクシー2にもreadline.fmのコミュニティがありますので、そちらでも感想やワイワイお待ちしております。
ポスト役は、げんえいさんと金城です。それではげんえいさん、よろしくお願いします。
スピーカー 2
よろしくお願いします。
スピーカー 1
はい、ということで、今日もまた本を読んでいくというか、読んだ上で話していくというポッドキャストですね。
スピーカー 2
はい。
スピーカー 1
はい。今日は何でしょうか。
スピーカー 2
今日は、プログラマーが知るべき97のこと、通称キノコ本で呼ばれるやつを読んだ感想をしゃべろうっていう回です。
スピーカー 1
これ、表紙がすごいですよね。写真がぶわって並んでて。
スピーカー 2
そうそう。
スピーカー 1
ちょっとびっくりしますよね、見たとき。
スピーカー 2
顔見てわかる人が、じゃあ日本人は知ってる人が何人かいるけど、外国人はあんまわかんねぇなっていう感じの並びですね。
スピーカー 1
確かになぁ。
スピーカー 2
名前は知ってたけど顔はわからんっていう人はいっぱいいるからな。
スピーカー 1
そうですね。GitHubで見ない限りあんまり写真は見ないからな。
スピーカー 2
そうそう。
スピーカー 1
この本は、まぁでも紹介いるのかなぐらい有名というか、いろんなところで言及されたり引用されたり。
スピーカー 2
そうですね。
スピーカー 1
特にティーワダさんの発表、登壇資料とか見てるとめっちゃ出てくるんでおなじみですからね。
スピーカー 2
そうそう、なんかめっちゃ見るなぁって。
このキノコ本にこう書いてありますね、みたいなスライドを何度も見たことやらっていうぐらい本当によく見ますね。
スピーカー 1
なんかあれですね、キノコ、なんだ、キノコ52みたいな感じで。
スピーカー 2
そうそう。
スピーカー 1
波動の99みたいな感じで引用してくるかな。
この本なんで今更読むんだ、みたいな話あります?
スピーカー 2
まぁ言い…
スピーカー 1
リーンさんに全部気にさせてるみたいな言い方してますけど。
スピーカー 2
これはあれでしたよね、前回次何読もうかねみたいな話してる中で、いろいろちらほら見ていて、
あれがいいんじゃないか、これがいいんじゃないかっていう話をしながら、
パッと目に入って、これどうですかね、みたいな話をしてて。
確かにもうこれ2010年なので、そっからもう15年経ってて、
多分プログラミングの環境もだいぶ変わってるだろうし、
今読んだらまた違う発見があるんじゃないかっていうのもあるだろうし、
逆に変わってないことみたいなところもいっぱいあるだろうなっていうので、
結構読んでみたら面白いんじゃないかなみたいなことがありましたね。
クリエイティブコモンズの意義
スピーカー 1
最近我々、最近の本を読んでることになりますね。
前回、書籍で言うと前回がザ・グッド・ニュース・ファクトリーで、あれは2025年の本だし、
その前のね、マイケル・ジャクソンのソフトウェア予注と仕様も、
2000年同じぐらいの時期のこと同じぐらいの時代。
で、その前がライトついてますかなんで。
あっちはね、古典になるそうなんですけど。
すごいですね、平成の本、ちゃんと平成令和の本を読んでると。
あとあれですね、次回これ読みますかって言ってた本が、
なんか僕が持ってるつもりだったけど持ってなくて、
新品もないから届くのがギリギリかもしれないし、
なんかAmazonのマーケットプレイスで買うから正直いつ届くかわからんみたいな。
予定日がずれそう、最悪来なそうみたいなこともあって、
じゃあずっとこの本読んだら面白そうなんじゃないかリストに積んであったキノコを読んでみるかと。
スピーカー 2
この本は手元に無くても最悪ウェブで読めますからね。
スピーカー 1
そうです、ゲイさんはこれは昔読んだことがありました?
スピーカー 2
読んだことあって、ブックログにちゃんとつけてて2014年に読んでましたね。
結構覚えてて、覚えててて内容っていうよりは当時はあんまり本を買うお金がなかったので、
図書館に行っていくつかプログラム関係の本を借りて読んでて、
そのうちの一冊、たぶんJust for Funとかあの辺と一緒に借りたんじゃないかなみたいな。
っていう記憶だけは残ってて、読んですごい面白いなとか、
すごく記憶に残ってるわけではないけども、
プログラムを書く上でこういうことやっぱり意識しないといけない、
意識することってこういうたくさんあるんだなっていうことを思って、
仕事をしていたなってことだけはものすごく覚えてますね。
スピーカー 1
そうかそうか、働き始めてからになりますもんね。
スピーカー 2
そうですね、働き始めて2年目とかだったんで、
たぶんちょうどRebuild FMとかを聞き始めてて、
宮川さんっていう人がいるんだなってことを知ったりとか、
たぶん知り始めたぐらいのときに、ちょうどこの本読んでるっていう感じでしたね。
スピーカー 1
なんか一番いいタイミングで読んでる気がする。
スピーカー 2
そうですね、たぶん一番熱量が高いとき、
一番最初の働き始めて、これからちゃんとしたプログラマーとして飯を食っていくんだ、
スピーカー 1
そのために勉強するんだって思ってた時期ですね。
内容的にもね、今できてないけどこういうのが大事なんだ、なるほどみたいなものが多そうな気がするし。
なるほどな、僕はだいぶ前に買ってはいたんですけど、
よくよく考えてみたら通読したことはなかったかもなと思って。
だから一通り読んだのは今回が初めてですね。
タイトル、エッセイのタイトル見てここちょっと気になるなっていうのをつまみ食いしたりとか、
あとそれこそ他の人の登壇資料で引用されてるやつとかをちらっとちょっと読んでみようって読んでみたりとか、
あとこの人こうしてたんだ、ちょっと読んでみようみたいな人の名前でいくつかつまみ食いしたりはしてたんですけど、
97プラス10個ちゃんと読んだのは今回が初めてでしたね。
スピーカー 2
通読しましょうみたいな本ではないんで、こういう収録をするから読むぞってなったりとか、
やっぱ読書会とかしない限りは多分端から端まで読む理由はあんまりないかもしれないですからね。
スピーカー 1
そうですねそうですね。
そうだから一通り読んだのが初めてだったんで、なんか気づいたというか、そういえばそうだったなーと思ったのがあれですね。
仕様とかのところがやっぱり特徴あるかなと思ってて、さっきげんえいさんもウェブで読みますよねって話はありましたけど、
ちゃんとねクリエイティブコモンズの表示3.0の条件下で公開されてますっていうふうに書いてあって、
これ日本語版がってことですよね。オリジナルもそうだし日本語版においても。
スピーカー 2
多分そういうことじゃないですかね。
ですよね。これはじめにに書いてあるから、どっちに書くかって。
どっちにこれは。だから多分この範囲内でやっていいよ。ただし、乗っける場合にはクリエイティブコモンズのルールに従ってっていうことがあると思うんで、
まあそのライセンスがこう電波していくじゃないと思うけど、そういうことが多分あるはずじゃないかなっていう。
スピーカー 1
でも表示だとかなり自由ですよね使うの。
スピーカー 2
そうですね。
スピーカー 1
ライセンス表記と引用元載せておけばそんなにめちゃくちゃ変なことしない限りはいけると。
スピーカー 2
クリエイティブコモンズが確かに今あんまりそういうのを話題になるっていうことがないかもしれないけど、
これぐらいの時って多分結構盛んにクリエイティブコモンズの話が日本でもされてたような気がするなっていう。
フェアユースとかクリエイティブコモンズとか、インターネットと著作権みたいなものがいっぱい議論されてた記憶があるなってちょっと思い出しましたね。
スピーカー 1
ウェーブ2.0とかの時代性もあるのか。いろんな人が発信できるようになったがゆえのみたいな。
スピーカー 2
だからそういうところでのブームっていうのも一個あって多分こういうことが、今だとちょっとあんまりクリエイティブコモンズで本をインターネット上に載っけますよみたいなことはやってる人はあんま見ないけども、当時としてはそういうブームもあったかもなっていう気がしますね。
本編への移行
スピーカー 1
そうですね。
てな感じで、じゃあコンテンツ本編入っていきますか。
スピーカー 2
そうですね。入っていきますか。いっぱいあるんでね。
スピーカー 1
全部は触れられないかなという気が。ずつの、あとさっき言った通り、最初から通読的に一通り読んでみるっていう連続性も物語性もないじゃないのね。
普通の目次ランドにカテゴリー別目次っていうのが載ってて、これとかもあるぐらいだから、お互いにここ良かったよねとか、ここちょっと話したいなっていうのを拾ってやっていきますか。
そうしましょう。どこから行きますか?
全部任せてる。
スピーカー 2
どっから行こうかなと思いながら、二人ともコメントしてるやつがいいかなと思ってたけど、二人ともコメントしてるのがあんまりなさそうだな。
スピーカー 1
意外と被ってないか?
スピーカー 2
意外と被ってないんだな。面白いですね。
スピーカー 1
それはそれで面白いな。
スピーカー 2
じゃあ難しいですね。どれから行くって難しいな。
スピーカー 1
どれから行こっかな。
関数型プログラミングの重要性
スピーカー 2
最初の方にあった関数型プログラミングを学ぶことの重要性ってやつがあって、これは本当にタイトルの通り関数型プログラミングってものを学ぶとまた違ったものの見方ができますよって話が載っているってやつで、
参照透過性みたいな話があって、この参照透過性ってそれよく聞くけどなんだっけなと思って、今回一応もう一回ちょろっとwikipediaだったりとかいろんな記事読んでたんですけど、
同じ引数で呼び出した関数は全く同じ結果を返却するという性質かのことを参照透過性って言うんですね。
全然名前は聞くけど、これって何だったんだろうなって思いながら今まで言いました。
このエッセイだけじゃないんだけど、この本全体的に複数の言語を学びましょうねっていう話がよくされているし、
達人プログラマーで1個プログラム言語を学びましょうって話がよく引用されるけど、実際この本の中でも同じように引用されてたし、
みんなこんなにいろんな言語を学びましょうっていうことを言ってるんだなってすごい感じましたね。
スピーカー 1
そうですね。それはすごいやっぱりピンときますもんね。いろんな考え方というか、こういうやり方だけじゃないんだって引き出し増やすとか、
本当に頭を柔らかくするっていうのは大事だなとは思いつつけど、でもそれにしてもみんな同じこと言うなっていうと、
すぐ下げた言い方になっちゃうのでちょっと語弊があるんですけど、同じところに行き着くなっていう感じがしますよね。
スピーカー 2
あとこのエッセイの最初のところに関数型プログラミングへの関心が再び高まってますよっていう話があって、
いやそもそも再びってことは前も関心高まってたんだっていうのあったんですけど、業界全体としてマルチコアへの移行が進んでいるっていうこともあるのでしょうっていう話があって、
そうかシングルコアだったな昔みたいなことをちょっと思いましたね。
スピーカー 1
そうですねあれですよ、CPU、民生の一般のご家庭でも買えるCPUがマルチコアになって単純なスペック数だけで商品を高く売れなくなったから、
AMDとかがネーミングの体型を変えたりとかありましたからね、数字がでかけりゃ強いじゃなくなっちゃったからちょっと困る。
スピーカー 2
いやもう今スマホでもマルチコア当たり前だよねとか、あとそのコアの大きさというか強さみたいなのを変えて、
ハードな処理するときはこっちみたいな単純な計算はこっちみたいな振り分けがあったりとか、そういうようなことがどんどん時代とともに変わっていくってなったときに、
関数型を学ぶのも大事かもしれないけど、じゃあこれから我々がもう一言語をやってみようと思ったときに何を学ぶといいのかなみたいなことも当時の状況とは違うんで、
異なる言語を学ぶ価値
スピーカー 2
ちょっと考えた方がいいんだろうなってことをちょっと読みながら思いましたね。
スピーカー 1
そうですね、関数型、ロバート・C・マーチンが割と最近2、3年前くらいに書いてた、クリーン・クラフトマンシップか。
でも関数型良さそうだぜって確か章があった気がするんですよね。
スピーカー 2
結局じゃあ関数型でってことになるのかな。
スピーカー 1
関数型、でも登場としてはかなり古いですよね、パラダイムとしては。
スピーカー 2
オブジェクト思考より前か下手したら。計算理っていう名前がつくもので数学っぽい関数型はなんかわかりやすいですもんね。
スピーカー 1
発想の飛躍がないというかすごい素直な正当な進化だなみたいな。
スピーカー 2
多分プログラミング経験ないけど数学とかわかる人に関数型っていうとなんとなくイメージうまくいくかもって思ってもらえそうだし、
オブジェクト思考って言われても何ですかそれはって言われるから、関数型の方が引数があって戻り値があってつまり何かをインプットすると結果が出てきてみたいなこと、
関数型って別にそういうことじゃないかもしれないけども、そう言われた時になんとなくピンときやすいというか。
スピーカー 1
やっぱり純粋なものを美しいですからね。
スピーカー 2
副作用とかない方がいいですからねやっぱり。
スピーカー 1
そうすると構造化というか抽象化がどういう風なレイヤーで組まれてやってても、
オブジェクト思考とかで抽象化をすると状態がいい感じにどっかに隠蔽されてますになるので、
一体何が起きるかは帰ってきてからの楽しみで、ならざるを得ない部分もあるし、それが強みではもちろんあるんですけど、
そうじゃない良さが関数型にはもしかしたらあるのかなと思って、だから今年は関数型やるぞ元年の七クール目ぐらいに入ってる気がするな。
スピーカー 2
いやわかるめっちゃわかる。昔はすごいハスケルを楽しく学ぼう通称エッチボンってやつが。
スピーカー 1
なんだって発売して3ヶ月ぐらいで買えましたもん。名前が面白いなって。
スピーカー 2
これ大学の研究室でこれ読もうぜみたいな話をしてる人がいたような気がして、だからもうあれからもう10年経ってるのかって思いながら。
今年こそは関数型王とかって言って、去年も関数型のドミニモデリングの本を読みやしたけど、ちょっとだけFシャープを触ったけど、その後また本読み出しちゃったから、実際にコードが書いてないんですけど。
スピーカー 1
でもそうか関数型的な世界観には割と触れてるわけですもんね。そこで置いてかれた。
スピーカー 2
関数型ドミニモデリングは出会うタイミングと、ちょうど新幹線に乗るというすごくちょうどいいものがあったんで。
スピーカー 1
動機づけ大事ですからね。
スピーカー 2
そう。新幹線広島から東京に移動すると、西の方はトンネルが多くてネットに繋がらないっていう最高の読書体験ができるエリアがあるので、そうすると呼べるんですよねって思いながら。
スピーカー 1
そうなんだよな。違うパラダイム、違う世界の住人コミュニティに触れてみるのはすごい大事だし、それは別に新しいところに行けるっていうだけじゃなくて、持ち帰ってこれる、自分のホームに影響を及ぼす部分もすごい大きいよねっていうのは、
とてもね、想像しなくてもわかるというか、いろんな同じ言語の同じウェブ系のいろんなフレームワーク触っただけでも、なるほどってなることが多いので、いわんや別言語とかまして別パラダイムとなると、いやーさぞかしって感じですよね。
スピーカー 2
ちょっと関連して。
19:18

コメント

スクロール