聞き流しプログラミング言語学習
Today: #181 in Technology, Japan on our combined chart.
Chart positions today · United States
Not on the United States charts we track today.
Not on the United Kingdom charts we track today.
Not on the Canada charts we track today.
Not on the Australia charts we track today.
Not on the Germany charts we track today.
Not on the Brazil charts we track today.
Not on the Mexico charts we track today.
Not on the New Zealand charts we track today.
Not on the Ireland charts we track today.
Not on the India charts we track today.
Not on the Philippines charts we track today.
Not on the South Africa charts we track today.
If you like 聞き流しプログラミング言語学習, try…
Ranking history · United States
Latest episodes
-
Rust 065 serde - 型と形式の間に置く語彙
October 23, 2026 · 11 min第65章へようこそ。 今日のテーマは「serde」です。 serdeは、Rustの型と、外部のデータ形式との間で、値を写すためのクレートだ。 設定ファイルを読む、ネットワークから届いたものを受け取る、保存したものを読み直す。 外と何かをやり取りする場面で使われる。 だが、この章で見るのは使い方ではない。 serdeが定めたのは、変換の実装ではなく、変換の構造だ。 今日扱うのは、外の語彙に何が無いのか、なぜ型と形式の間に3つ目の語…
-
Rust 064 命名規則 - 型が検査しない約束
September 17, 2026 · 12 min第64章へようこそ。 今日のテーマは「命名規則」です。 標準ライブラリを読むと、同じ語頭が繰り返し現れる。 as_str、to_owned、into_bytes。 この語頭は、書いた人の好みで選ばれたものではない。 名前は2つの層でできている。 1つ目の層は、型に書いてあることを先に言う層だ。 名前が言っていることを、シグネチャを読めば確かめられる。 2つ目の層は、型に書けなかったことを言う層だ。 こちらを確かめる手段は、言語の側…
-
Rust 063 const generics - 長さが型の一部になる
September 3, 2026 · 11 min第63章へようこそ。 今日のテーマは「const generics」です。 第10章で、型をパラメータにする仕組みを見ました。 定義するときには型を決めず、使うときに決める。 要素の型が違うだけで同じ処理を書き直すことは、これでなくなりました。 だが、型パラメータでは抽象化できないものがある。 配列の長さだ。 要素が3つの配列を受け取る関数に、要素が4つの配列は渡せない。 今日扱うのは、なぜ長さが型を分けるのか、その長さをどうや…
-
Rust 062 Newtype - 包んで、通すものを選ぶ
August 24, 2026 · 10 min第62章へようこそ。 今日のテーマは「Newtype」です。 第6章で、この形はもう出ています。 中身が同じでも型として別物にするために、タプル構造体で包む。 メートルとキログラムはどちらも中の型が同じでも、片方をもう片方の引数には渡せない。 この手法をニュータイプパターンと呼ぶ、と命名しました。 今日はその先を扱う。 包んだあと、その型に何をさせるかは、まだ何も決まっていない。 包んだ型は、中身の操作を1つも受け継がないからだ。…
-
Rust 061 Cow - 必要になるまで複製しない
August 11, 2026 · 10 min第61章へようこそ。 今日のテーマは「Cow」です。 第18章で、文字列を返す関数の戻り値をどう決めるかを見ました。 新しく作ったものを呼び出し側に持ち帰らせるならString、借りたまま返すなら文字列スライス。 戻り値の型は所有権の流れで決まる、と定めた。 この原則で決められない関数がある。 入力をそのまま返すこともあれば、加工したものを返すこともある関数だ。 どちらになるかは、入力を見るまで決まらない。 今日扱うのは、その決…
Show 7 more episodesShow fewer episodes
-
Rust 060 rayon - データ並列を当たり前にする
August 7, 2026 · 10 min第60章へようこそ。 今日のテーマは「rayon」です。 rayonは、Cargoの設定ファイルに書いて取り込む外部のクレートです。 コレクションの要素にかける処理を、複数のコアへ分けて走らせる。 現在のCPUには、コアが複数ある。 だが、イテレータで要素を順に処理するコードは、そのうちの1つしか使わない。 要素が100万個あっても、残りのコアはなにも進めていない。 rayonが引き受けるのは、この使われていないコアへ要素を配り、か…
-
Rust 059 キャッシュと局所性 - メモリの速度は均一でない
August 5, 2026 · 10 min第59章へようこそ。 今日のテーマは「キャッシュと局所性」です。 第20章で、スタックは速くヒープは遅いと言われるのを分解しました。 差は3つあった。 確保にかかる時間、解放にかかる時間、そしてアクセスの局所性だ。 このうち確保と解放は、アロケータの手順の差だった。 3つ目だけが、置いてある値を読むこと自体の速さの話だ。 第20章では、スタックはCPUのキャッシュに乗りやすく、ヒープは散らばるから恩恵を受けにくい、とだけ述べた。…
-
Rust 058 FFIと所有権 - 境界を越える解放とパニック
August 3, 2026 · 12 min第58章へようこそ。 今日のテーマは「FFIと所有権」です。 第56章で、境界の向こうにRustの保証が1つも届かないと見ました。 借用チェッカーも、所有権も、ライフタイムも、ドロップも、境界の手前で止まる。 前章では、型の姿を両側で守る契約にして、を外へ渡せる形に整えた。 だが、外へ渡したは、いつか解放しなければならない。 契約が決めるのは姿までで、後始末までは決めない。 今日扱うのは、が境界を越えるとき何が渡るのか、解放の責任…
-
Rust 057 repr(C) - メモリレイアウトを契約にする
August 2, 2026 · 10 min第57章へようこそ。 今日のテーマは「repr(C)」です。 第55章で、値はメモリの上ではビット列だと見ました。 その並びをどう読むかを決めるのが型だった。 だが、複数の値を1つにまとめた構造体が、メモリの上でどう並ぶのかは、まだ見ていない。 型は値の読み方だけでなく、構造体のフィールドの置き方も決めている。 今日は、その置き方を見ます。 第56章では、言語をまたぐ境界で、関数が呼び出し規約という機械語レベルの取り決めでつながる…
-
Rust 056 FFI境界 - Rustでない世界と地続きになる
August 1, 2026 · 11 min第56章へようこそ。 今日のテーマは「FFI境界」です。 第52章から前章までで、unsafeが解禁する操作を見てきました。 生ポインタのデリファレンス、UnsafeCell、transmute。 どれもunsafeだったが、扱っていたのはRustの中の値だった。 生ポインタが指すのもRustが確保したメモリ、transmuteが読み替えるのもRustの型のビット列。 規則の外側とはいえ、まだRustの世界の中にあった。 今日から…
-
Rust 055 transmuteと未定義動作 - 越えてはいけない線
July 31, 2026 · 12 min第55章へようこそ。 今日のテーマは「transmuteと未定義動作」です。 第52章で、unsafeは規則を破る許可ではなく、保証の主体がコンパイラから人間へ移る境界だと見ました。 第53章と第54章では、その移転が起きる場所を見た。 生ポインタのデリファレンスでは、指す先に有効な値があることを人間が保証した。 UnsafeCellでは、読みと書きが衝突しないことを人間が保証した。 だが、保証に失敗したら何が起きるのかは、まだ確か…
-
Rust 054 UnsafeCell - 内部可変性の底
July 29, 2026 · 13 min第54章へようこそ。 今日のテーマは「UnsafeCell」です。 第23章で、内部可変性を見ました。 外側の値に不変参照しか持っていないのに、その内側の値を変更できる仕組み。 RefCellは、借用の検査を実行時に行うことで、それを安全な操作として提供していた。 だが、1つ確かめていないことがある。 借用規則は、不変参照の先を書き換えることを許さない。 そしてRefCell自身も、Rustで書かれた型だ。 同じ規則の下にあるはず…

Australia
Brazil
Canada
Germany
India
Ireland
Japan
Mexico
New Zealand
Philippines
South Africa
United Kingdom