Programming Language Design: Optimal Functionality