ますたーさん

聞き流しプログラミング言語学習

生成AIが作成した汎用的なプログラミング言語の知識を、聞き流しで学習するための音声コンテンツです。個人学習用として作成しています。音声:VOICEVOX(青山龍星)

Author

ますたーさん

Category

Technology

Podcast website

podcasters.spotify.com

Latest episode

Jul 8, 2026

Where to listen?

Podcasts in the app Replaio Radio Coming soon

Podcasts are coming to the app soon. Install now and be the first to see a whole new take on podcasts

Get it on Google Play Install for free Android 5M+ downloads · 4.8 rating iOS soon

Episodes

【Rust音声学習 第92章】Drop ― 所有権の最後の仕事 23.02.2026

第92章へようこそ。 今日のテーマは「所有権の最後の仕事」です。 所有権には、始まりと終わりがあります。 値を生成したとき、所有権が生まれる。 値がスコープを抜けたとき、所有権が終わる。 この「終わるとき」に何が起きるか。 それを定義するのが、Dropトレイトです。 Derefは、所有している値へのアクセスを透明にしました。 Fn、FnMut、FnOnceは、値のキャプチャ方法を定義しました。 Dropは、値の後始末を定義します。 所...

【Rust音声学習 第91章】Fn、FnMut、FnOnce ― クロージャは三つのトレイトである 22.02.2026

第91章へようこそ。 今日のテーマは「クロージャは三つのトレイトである」です。 前章で、Iteratorのデフォルトメソッドを見ました。 map、filter、fold。これらはすべてクロージャを受け取ります。 しかし、受け取るクロージャの種類が同じではない。 あるメソッドはFnMutを要求する。あるメソッドはFnOnceを要求する。 Fn、FnMut、FnOnce。 この三つの名前は何を意味しているのか。 なぜ区別が必要なのか。 答えは、Rustの根幹に...

【Rust音声学習 第90章】Iterator ― nextから生まれる世界 21.02.2026

第90章へようこそ。 今日のテーマは「nextから生まれる世界」です。 ここ数章で、あるパターンが繰り返し現れてきました。 Displayを実装すれば、to_stringが手に入る。 Fromを実装すれば、Intoが手に入る。 Derefを実装すれば、メソッド呼び出しの透過性が手に入る。 一つを実装すれば、多くが手に入る。 Rustのトレイト設計に貫かれた原則です。 今日は、この原則の究極の体現者を見ます。 Iteratorトレイト。 Iteratorトレイト...

【Rust音声学習 第89章】Deref ― 透明になる型の境界 20.02.2026

第89章へようこそ。 今日のテーマは「透明になる型の境界」です。 前章で、FromとIntoの話をしました。 型と型の間に橋を架けるトレイト。 fromメソッドやintoメソッドを呼んで、明示的に変換する。 橋を渡ることを、コードの中で宣言する。 今日の話は違います。 橋を渡っているのに、渡っていることが見えない。 型の境界が、透明になる。 Derefトレイト。 Rustの中で最も静かに、最も広範に働いているトレイトの一つです。

【Rust音声学習 第88章】std::convert ― 型と型の橋を架ける 18.02.2026

第88章へようこそ。 今日のテーマは「型と型の橋」です。 Rustの道具は5つに分類できます。 言語構文、プレリュード、組み込みマクロ、標準ライブラリ、外部クレート。 今日も標準ライブラリの章です。 プレリュードの章で、FromとIntoに触れました。 ある型から別の型への変換は、あらゆる場面で発生する。 だからプレリュードに入っている、と。 前章では、ブランケット実装の話をしました。 Displayを実装すれば、ToStringが自...

【Rust音声学習 第87章】std::fmt ― 型が自分の見せ方を決める 18.02.2026

第87章へようこそ。 今日のテーマは「型が自分の見せ方を決める」です。 Rustの道具は5つに分類できます。 言語構文、プレリュード、組み込みマクロ、標準ライブラリ、外部クレート。 今日も標準ライブラリの章です。 前々章で、プレリュードの話をしました。 そのとき、一つの不在に触れました。 Debugトレイトはプレリュードに含まれる。しかしDisplayトレイトは含まれない。 今日は、そのDisplayの世界に入ります。 std::fmtモ...

【Rust音声学習 第86章】標準ライブラリ:外界 ― 環境、パス、時間 17.02.2026

第86章へようこそ。 今日のテーマは「プログラムの外側」です。 Rustの道具は5つに分類できます。 言語構文、プレリュード、組み込みマクロ、標準ライブラリ、外部クレート。 今日も標準ライブラリの章です。 前章では、入出力を見ました。 ReadとWriteというトレイトが、ファイル、ネットワーク、標準入出力を統一していた。 今日は、プログラムが外の世界と接する残りの部分を見ます。 プログラムはどう起動されたか。どこにいる...

【Rust音声学習 第85章】標準ライブラリ:入出力 ― ReadとWriteがすべてを繋ぐ 17.02.2026

第85章へようこそ。 今日のテーマは「標準ライブラリの入出力」です。 Rustの道具は5つに分類できます。 言語構文、プレリュード、組み込みマクロ、標準ライブラリ、外部クレート。 前章では、useを書かずに使える最初の3つを見ました。 今日から、4つ目に入ります。 標準ライブラリ。useが必要だが、Cargo.tomlには書かない世界です。 ファイルを読む。ネットワークからデータを受信する。標準入力からテキストを受け取る。 これ...

【Rust音声学習 第84章】言語構文、プレリュード、組み込みマクロ ― useを書かない世界 17.02.2026

第84章へようこそ。 今日のテーマは「useを書かない世界」です。 Rustで使える道具は、5つに分類できます。 1つ目は、言語構文。if、match、for、let、useのような、言語そのものの文法。 2つ目は、プレリュード。Option、Vec、Cloneのような、自動的にインポートされる型とトレイト。 3つ目は、組み込みマクロ。println!、panic!、assert!のような、常に使えるマクロ。 4つ目は、標準ライブラリ。HashMap、File、TcpStreamのよう...

【Rust音声学習 第83章】Tauriのビルドと配布 ― デスクトップアプリを届ける 15.02.2026

第83章へようこそ。 今日のテーマは「ビルドと配布」です。 Rustでビルドすれば、実行ファイルが1つ出来上がります。 それをコピーすれば、確かに動く。 しかし、「動く」と「届けられる」は違います。 実行ファイルをそのまま渡されたユーザーは、まず疑います。 これは本当に安全なのか。誰が作ったのか。途中で改ざんされていないか。 OSも同じ疑いを持ち、警告を出してブロックする。 開発者の環境では動いたが、ユーザーの環...

【Rust音声学習 第82章】Tauriの状態管理 ― コマンドをまたぐデータの共有 15.02.2026

第82章へようこそ。 前章では、Tauriのセキュリティモデルを学びました。 今日のテーマは「状態管理」です。 Tauriのコマンドは、JavaScriptからRustの関数を呼び出す仕組みでした。 しかし、関数呼び出しは一回きり。呼ばれて、結果を返して、終わり。 ではアプリケーションは、どうやって「前の操作の結果」を覚えているのか。 今日はその問いから始めます。

【Rust音声学習 第81章】Tauri - Capabilities フロントエンドに何を許すか 14.02.2026

第81章へようこそ。 前回は、コマンドとイベントを学びました。 フロントエンドとバックエンドの間で、データをやり取りする仕組み。 今日のテーマは、セキュリティです。 Tauriアプリケーションでは、フロントエンドはWebViewで動いています。 HTML、CSS、JavaScript。Webページと同じ。 Webページには、ブラウザがセキュリティ制限を課しています。 ローカルファイルを読めない。任意のプロセスを起動できない。 しかしTauriでは...

【Rust音声学習 第80章】Tauri - コマンドとIPC RustとJavaScriptの境界 14.02.2026

第80章へようこそ。 前回は、Tauriのアーキテクチャを学びました。 フロントエンドはWebViewで動き、バックエンドはRustで動く。 今日のテーマは、この2つの世界を繋ぐ仕組みです。 コマンドとイベント。 フロントエンドがバックエンドに処理を依頼する。 バックエンドが結果をフロントエンドに返す。 バックエンドからフロントエンドに通知を送る。 これらの通信は、すべてIPC、プロセス間通信を通じて行われます。

【Rust音声学習 第79章】Tauri入門 ― なぜブラウザを同梱しないのか 14.02.2026

第79章へようこそ。 今日のテーマは「Tauri」です。 Rustでデスクトップアプリケーションを作るフレームワーク。 デスクトップアプリを作る方法はいくつかあります。 その中で、Web技術を使う方法が人気を集めてきました。 HTML、CSS、JavaScriptで画面を作る。慣れた技術でUIを構築できる。 この分野で長く支配的だったのがElectronです。 VS Code、Slack、Discord。多くの有名アプリがElectronで作られている。 しかしElectronに...

【Rust音声学習 第78章】Pin ― 動かないことの保証 13.02.2026

第78章へようこそ。 今日のテーマは「Pin」です。 Pinは、Rustの中でも特に混乱しやすい概念の一つ。 ドキュメントを読んでも、最初は何を言っているかわからない。 「値をメモリ上の位置に固定する」。 それが何を意味するのか。なぜ必要なのか。 答えは「自己参照構造体」にある。 自分自身の一部を指すポインタを持つ構造体。 Rustの所有権モデルでは、これが問題になる。 そして、async/awaitが生成するFutureは、まさに自己参...

【Rust音声学習 第77章】rayon ― データ並列を当たり前にする 13.02.2026

第77章へようこそ。 今日のテーマは「rayon」です。 データ並列処理。聞くだけで複雑そうに感じる。 スレッドの生成、タスクの分割、結果の集約、レースコンディション。 気をつけることが多すぎる。 でもrayonを使うと、話が変わる。 逐次処理のイテレータをpar_iterに変える。それだけで、 CPUコアをすべて使い切る並列処理になる。 コードの見た目はほぼ同じ。 魔法ではありません。 rayonの内部で何が起きているのか。 どんな...

【Rust音声学習 第76章】関数の設計 ― 呼び出し側の視点で考える 13.02.2026

第76章へようこそ。 前章では、型を使って不正を防ぐAPI設計の思想を学びました。 今日はもう少し具体的な話です。 関数やメソッドの「引数」と「戻り値」をどう設計するか。 Rustでは、引数で所有権を取るか参照を取るかという選択があります。 戻り値にも、コレクションを返すかイテレータを返すかという選択がある。 これらの判断基準を学びます。 共通するのは「呼び出し側の視点で考える」という姿勢です。

【Rust音声学習 第75章】API設計 ― 使う人を守るインターフェース 13.02.2026

第75章へようこそ。 今日のテーマは「API設計」です。 ライブラリを書く。モジュールを設計する。関数のシグネチャを決める。 これらはすべてAPI設計の一部です。 良いAPIとは何か。 「使いやすい」だけでは足りません。 「間違った使い方ができない」ことが、Rustらしい良いAPIの条件です。 今日は、型システムを使ってAPIの利用者を守る、その思想を学びます。

【Rust音声学習 第74章】メモリ確保戦略 ― アロケータの正体と付き合い方 12.02.2026

第74章へようこそ。 今日のテーマは「メモリ確保戦略」です。 Vec::newを呼ぶ。String::fromを呼ぶ。Box::newを呼ぶ。 何気なく書くこれらのコードの裏側で、アロケータが動いている。 アロケータとは何か。なぜメモリ確保は「コスト」と言われるのか。 そのコストを減らすために、どんな手法があるのか。 今日は、普段は意識しないレイヤーに降りていきます。 「なぜこれが速くて、あれが遅いのか」の本当の理由がわかるようにな...

【Rust音声学習 第73章】clap ― コマンドラインインターフェースを型で設計する 11.02.2026

第73章へようこそ。 今日のテーマは「clap」です。 RustでCLIツールを作るとき、ほぼ確実に使うことになるクレート。 名前はCommand Line Argument Parserの略。 コマンドライン引数の解析というと、地味な仕事に聞こえるかもしれません。 でも、よく設計されたCLIツールは使いやすい。 引数の解析がしっかりしていると、ユーザーが間違った使い方をしたとき、何が問題かを明確に教えてくれる。 ヘルプメッセージが自動生成される...

【Rust音声学習 第72章】Tokio深掘り ― ランタイムの中で何が起きているか 11.02.2026

第72章へようこそ。 今日のテーマは「Tokioの深掘り」です。 第51章でTokioの基本を学びました。 spawnでタスクを作り、awaitで待ち、sleepで非同期に眠る。 でもあの章では「何が起きているか」をほとんど説明しませんでした。 ランタイムの中で、タスクはどう管理されているのか。 マルチスレッドランタイムとシングルスレッドランタイムは、何が違うのか。 selectマクロは、なぜ複数のFutureを同時に扱えるのか。 tokio::syncと...

【Rust音声学習 第71章】キャッシュと局所性 ― メモリの速度は均一ではない 09.02.2026

第71章へようこそ。 今日のテーマは「キャッシュと局所性」です。 第20章でスタックとヒープを学びました。 でもメモリの話には、もう一つ重要な次元があります。 CPUキャッシュです。 同じメモリアクセスでも、速いときと遅いときがある。 1ナノ秒で済むこともあれば、100ナノ秒かかることもある。 100倍の差。なぜこんなことが起きるのか。 答えはCPUキャッシュにあります。 そして、キャッシュを意識したデータ配置が「局所性」...

【Rust音声学習 第70章】Cow ― 必要になるまでコピーしない 09.02.2026

第70章へようこそ。 今日のテーマは「Cow」です。 Copy on Writeの略。コピーオンライト。 Rustを書いていると、こんな場面に出会います。 「この文字列、ほとんどの場合はそのまま使うけど、たまに加工が必要」。 そのまま使うなら参照でいい。加工するなら所有権が要る。 両方に対応したい。でも常にcloneするのは無駄。 この「必要になるまでコピーしない」を実現するのがCowです。 名前が可愛いので軽く見られがちですが、実用...

【Rust音声学習 第69章】anyhowとthiserror ― エラー処理の二刀流 09.02.2026

第69章へようこそ。 今日のテーマは「anyhowとthiserror」です。 Rustのエラー処理には、2つの代表的なクレートがあります。 anyhowとthiserror。 この2つは、それぞれ異なる場面で使います。 どういう場面か。それを理解するのが今日の目標です。

【Rust音声学習 第68章】名前が約束する「振る舞い」 08.02.2026

第68章へようこそ。 前回は、名前が「コストと所有権」を教えることを学びました。 今日は、名前が「振る舞い」を約束することを学びます。 メソッド名は、呼び出し側との契約です。 名前を見れば、何が起きるか予測できる。 予測できるから、安心してコードが書ける。 Rustのエコシステム全体が同じ約束を守っている。 だから、初めて見るクレートでも読みやすい。 今日はその約束を学びます。

Listen to the 聞き流しプログラミング言語学習 podcast in Replaio

Radio and podcasts in one app - free, with no sign-up. Install today and do not miss the launch

Get it on Google Play

Replaio is not a podcast publisher; show names, artwork and audio belong to their authors and are distributed through public RSS feeds.