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