
Racket is a descendant of Lisp, a programming language renowned for its elegance, power, and challenging learning curve. But while Racket retains the functional goodness of Lisp, it was designed with beginning programmers in mind. Realm of Racket is your introduction to the Racket language. In Realm of Racket, you'll learn to program by creating increasingly complex games. Your journey begins with the Guess My Number game and coverage of some basic Racket etiquette. Next you'll dig into syntax and semantics, lists, structures, and conditionals, and learn to work with recursion and the GUI as you build the Robot Snake game. After that it's on to lambda and mutant structs (and an Orc Battle), and fancy loops and the Dice of Doom. Finally, you'll explore laziness, AI, distributed games, and the Hungry Henry game. As you progress through the games, chapter checkpoints and challenges help reinforce what you've learned. Offbeat comics keep things fun along the way. As you travel through the Racket realm, you'll: –Master the quirks of Racket's syntax and semantics –Learn to write concise and elegant functional programs –Create a graphical user interface using the 2htdp/image library –Create a server to handle true multiplayer games Realm of Racket is a lighthearted guide to some serious programming. Read it to see why Racketeers have so much fun!
Realm of Racket [0] seems like it might be more OP's speed.
[0] https://www.amazon.ca/Realm-Racket-Learn-Program-Game/dp/159...
The language is incredibly well documented and has a lot of image manipulation tools you can get started with right away. This is great for kids because they really gravitate to the visual aspects of coding.
I've was put off by s-exprs for years, but after 3 days I'm almost in the camp of them being "the better syntax". They're just so darn simple, and I think a kid can get the jist of a lisp very quickly because they haven't been exposed/gotten used to a non-lisp yet.
I think a simplified approach to walking a kid through the first few chapters of How To Design Programs is totally feasible. DrRacket's step through feature would really help a kid see visually what is happening in their program. Ive hears good things about Realm of Racket as well.
Also then you could transisiton them over to https://fennel-lang.org/, a lisp that compiles to Lua, and start doing some love2d programming or some microcontroller coding on Lua supported boards.
Another alternative to the fennel path is going the clojure route and introducing him to the wonderful JVM world. The JVM has a ridiculous amount of libraries that they can integrate with and you could start peppering in a bit of Java learning.
http://htdp.org/2020-8-1/Book/part_prologue.html
If "functional programming for the enterprise" sounds good to you, read Clojure for the Brave and True.
If you're more interested in a truly mature language with a more academic community, read Land of Lisp.
If you're looking for a simple language that's easy to learn, or if metaprogramming is really your jam, read Realm of Racket.
As far as editors go, just start with whichever one you personally like best. They're all fine. I wouldn't bother spending much time worrying about that until after you've confirmed you want to stick with it.