Good programmers used conventions for creating local environments within subroutines. This is a clear advantage over the old model. In text-based interfaces the programmer built interactivity using a suite of simple text stream primitives, typically two for fetching and displaying a single character and two for fetching and displaying a line of text. For example graphics and text windows allow users to enter unrestricted data. Dialogue boxes constrain the user's input in order to tailor it to a response.
Sliders provide a clean mechanism for specifying a point within a range.
Buttons provide an extremely constrained set of options. This variety has always been necessary, and in fact in the text-based environments, user error was often introduced precisely because the response was not properly constrained. The danger is that novices learn what the tools are, but never come to appreciate their use. For example, a task that could be better served by a button is done through a dialogue box. The advantage of tackling the problem head on is that students do something meaningful and interesting.