Grace: the Absence of (Inessential) Difficulty


We are engaged in the design of a small, simple programming language for teaching novices object-oriented programming. This turns out to be far from a small, simple task. We focus on three of the problems that we encountered, and how we believe we have solved them. The problems are (1) gracefully combining object initialization, inheritance, and immutable objects, (2) reconciling apparently irreconcilable views on type-checking, and (3) providing a family of languages, each suitable for students at different levels of mastery, while ensuring conceptual integrity of their designs. In each case our solutions are based on existing research; our contribution is, by design, consolidation rather than innovation.


Andrew P. Black, Kim B. Bruce, Michael Homer, James Noble

Published in

Symposium on New Ideas in Programming and Reflections on Software (Onward!), 2012
Michael Homer — 2018