How far back should Java retain backwards-compatibility?