Programming in the Large with Algebraic Module Specifications (Invited Paper)