4 ms·
Other people recommended Scratch, but I personally think that it's a poor educational programming language. It's extremely limiting and lacks abstractions such
by TheAsprngHacker 8y ago
Other people recommended Scratch, but I personally think that it's a poor educational programming language. It's extremely limiting and lacks abstractions such as script-local variables, procedures that return values, and a first-class way to group data. As a result, people pick up poor programming practices such as storing results in global variables or using strings for compound data.
Snap! (https://snap.berkeley.edu/ https://snap.berkeley.edu/) is based on Scratch and Scheme and features local variables, lambda expressions, and first-class lists (both Scratch array style and Lisp linked-list style). You could also look into Racket (https://racket-lang.org/ https://racket-lang.org/), another language similar to Scheme. Both these languages have multimedia capabilities that make them attractive to new programmers and a more sensible design that better captures the essence of abstraction and composition.