I help teach an after-school programming class for middle schoolers. Last year, we tried using Python. While some students got the hang of it, many seemed confused and demotivated.
This year, I wrote a simple TinyBASIC REPL from scratch[1], aiming to produce the simplest subset of the language that made it possible to do interesting things and illustrate concepts like looping, branching, variables, etc. It was a big hit with the kids, and the whole class has been extremely engaged. As a next step, I've built a Logo[2] implementation so that we can move into writing modular, reusable procedures and play with graphics.
Learning to program is almost entirely orthogonal to learning a language, and I think that starting with very small "toy" languages is a good way to approach teaching core concepts without getting lost in the quirks and complex features of popular "real" languages. BASIC is small, Python will never be.
[1]https://github.com/JohnEarnest/Mako/tree/master/demos/Masica
[2]https://github.com/JohnEarnest/Mako/tree/master/demos/Loko