I learned to program using Scratch and I loved this about the language community that developed around it. For the first few years it didn't even have arrays, procedures, or text input, and people (kids!) worked around these things by encoding state using the powerful graphics tools, clever math, and brute force.
People in the forums would clamor for more powerful features, but they were rolled out slowly and carefully. Later on I had a brief internship with the Scratch team and got a sense for why. The dev team was small, but more importantly they thought very carefully about how to whittle a language feature to its essence to enable maximum creativity with minimum cognitive overhead. I really appreciated that.
Of course I also quickly developed an appreciation for Snap[0] (née BYOB) which veered off from Scratch with a more "f*ck it, have everything" philosophy towards language design :)