I'd say Scratch for any age as a first language because by its nature it encourages play and exploration to learn the language. It also minimizes the impact of syntax learning on the development of programmatic thinking and design skills.