現代の言語進化は同じ方向を向いている
記述量を減らすためではなく、表現できてしまう状態を減らすために構文は変わってきた——言語をまたぐ変化の共通ベクトルを読み解きます。
PHP・Python・TypeScript・Rust はなぜ似た機能を揃って取り込んだのか。null・失敗・不変性・パターンマッチという共通の軸で言語を横断し、旧世代から現代への変化を読み解く連作。
全 7 記事 · この順で読むことをおすすめします
記述量を減らすためではなく、表現できてしまう状態を減らすために構文は変わってきた——言語をまたぐ変化の共通ベクトルを読み解きます。
null 許容・nullable 型・Option 型——同じ「null 安全対応」に見えて、実際に違うのは値の欠如が検査されるタイミングです。
例外と Result 型の違いは好みではなく、失敗を型に載せるかどうかの設計判断——処理漏れを誰が検出するかが変わります。
不変性には「束縛の不変」と「値の不変」、そして浅いか深いかの軸がある——同じ readonly でも守る範囲が違います。
match と書ければ同じではありません——分岐の網羅漏れをコンパイラが教えてくれるかどうかで、機能としての価値が変わります。
PHP 8 系は動的な書き方を禁じたのではなく、宣言的に書く選択肢を足した——7.4 との差分を型・データモデル・分岐の3点で整理します。
動的型言語のまま、型注釈・パターンマッチ・遅延評価が拡張されてきた——3.9 世代のコードが古く見える理由を構文の差分で整理します。