I’m Betting on Call-by-Push-Value

At a fork in the road of programming language semantics lies the choice between call-by-value (CBV) and call-by-name/call-by-need (CBN) evaluation strategies. Languages like Rust, Java, JavaScript, Python, and C/C++ opt for CBV, while Haskell stands as the sole proponent of CBN. However, a recent breakthrough in the form of Call-by-Push-Value (CBPV) introduces a third option that combines the best of both worlds by separating computations from values. CBPV’s explicit approach not only optimizes code generation but also enables new possibilities in type inference, algebraic effects tracking, and handling generic types efficiently. As the future of programming languages unfolds, CBPV emerges as a promising paradigm shift in the field.

https://thunderseethe.dev/posts/bet-on-cbpv/

To top