What is needed is a common “building block” language for many interesting environments, teaching higher levels of abstraction.
One language, many environments—exactly. People remember by repeating, so completing 10 levels is not enough, but completing 1000 levels in the same environment would be boring.
You can practice the same concept, e.g. a while-loop, by letting a robot walk towards the wall, or cooking the cake until it is ready. You can practice a for-loop by collecting 3 apples in the garden or walking 3 blocks away on the map of the town. All you need is different environments with different sets of primitives and one editor with environment-independent commands.
One language, many environments—exactly. People remember by repeating, so completing 10 levels is not enough, but completing 1000 levels in the same environment would be boring.
You can practice the same concept, e.g. a while-loop, by letting a robot walk towards the wall, or cooking the cake until it is ready. You can practice a for-loop by collecting 3 apples in the garden or walking 3 blocks away on the map of the town. All you need is different environments with different sets of primitives and one editor with environment-independent commands.