Javaは2014年にラムダ式を導入しましたが、関数型プログラミングの概念は1958年のLispまで遡ります。なぜ56年もの隔たりがあったのでしょうか。この記事は、言語が機能を採用するのは外部からの圧力が不可避になった時だけだと論じています。引き金となったのは2005年頃のデナード則の終焉で、CPUクロック速度の向上が止まりました。シングルスレッド性能が頭打ちになる中、開発者はマルチコアプロセッサを活用する新しいツールを必要としました。関数型プログラミングの不変性とステートレス性は並列実行に理想的でした。著者はこれをアーキテクトの核心的教訓と位置づけています。技術選択は純粋な革新ではなく、制約への反応であることが多いのです。
Javaが2014年にラムダを採用したのは新しさのためではなく、2005年のCPUクロック速度の頭打ちへの対応でした。並列処理への移行を迫られたのです。