Arguing about arguments
Summary
Steve Klabnik discusses named parameters, optional/default arguments, and function overloading in programming languages, using Rust and Ruby as primary examples. He argues that Rust currently lacks these features, surveys their trade-offs, and shares his evolving stance toward named parameters while remaining wary of optional/default arguments and the associated complexity. The piece also covers practical concerns like evaluation order, compatibility, and the builder pattern as alternatives.