Following on from the Berkeley View survey, the Par Lab team at UCB has been thinking about how to develop a programming system that will make it easy to write correct programs that run efficiently on manycore systems. Our approach is based on two layers: a productivity layer, which sidesteps most concurrency issues, to be used by the majority of programmers; and an efficiency layer, which can achieve close to "bare metal" performance, for use by expert programmers. Other important ingredients include a composition and coordination language, used to safely compose parallel libraries and frameworks, and a lightweight hypervisor layer that provides protected partitions within which user code controls all scheduling decisions.