I agree (as does Jens) that an ANSWER TO (question) reporter would be better than the current arrangement. But... two things:
-
I'd like to train everyone to stop calling niladic reporters (ones with no inputs) "variables." They're not variables; the value they report can change out from under you without you doing a SET. In this case, some other part of your code could have another ASK AND WAIT with a different question, and so the value reported by ANSWER will change. Variables are orange and can be set (only) by SET (and CHANGE, if they're numbers). This doesn't affect the merit of your suggestion, just your vocabulary. Learn to say "niladic reporter." :~)
-
Of course the reason we have the old blocks is, as you say, that we inherited them from Scratch. There is one intellectually respectable argument for the Scratch way, namely that in general reporters only report values, without changing anything about the state of the program. Your proposed reporter will SAY the question and open a reply widget on the stage, prior to reporting a value. Also, @ego-lay_atman-bay's practical argument has pragmatic value, even if intellectually not the most aesthetically pleasing. We haven't wanted to break Scratch projects, of which there are lots more, so far, than Snap!-native ones.
We have a vague understanding that When Things Slow Down™ we'll create a Scratch compatibility library and do all the Scratch-project-breaking things at once. But lots of things are more urgent.