I learned to program with BASIC when I was young, but can't imagine why I would teach someone to program using BASIC when Python is available as an alternative.
If your goal is doing something practical with the machine, Python is certainly a better choice than BASIC. On the other hand, from an educational standpoint, BASIC shares an important trait with Pascal: It doesn't do much out of the box. In BASIC you have to do some work to extract the minimum element of a list, swap two numbers, maintain a resizable array and any number of other trivial "algorithms" that Python's language features and libraries provide. Is it so hard to see that more sophisticated languages can take away opportunities to learn the fundamentals from scratch and gain an intuitive grasp of algorithm design?
However from an educational standpoint Pascal has a great advantage over BASIC. It was invented after people came up with structured programming, and is designed to make structured programming easy and natural.
This is a pretty significant advantage to me. (Though these days I wouldn't choose either.)
Googling turned up something called Pathcal from 30 years ago that allowed you to do incremental development in Pascal, that would catch errors on the fly. You were even able to modify the environment from within itself.
I know nothing about it and so don't know how interactive it actually was.
I don't think you need to worry about that. I had played entertaining video games before I started programming, and never produced anything of similar quality. None of the games I made came anywhere close to resembling the glitz and glamor of the media or video games I loved. It's easy to look back at the 1980s and see nothing but drabness, and conclude that programming provided a competitive entertainment experience, but that's not what it was like at the time. Sometimes I'd borrow a new game disk from somebody, boot from the 5.25" floppy, and the graphics would blow me away. Nothing like the crappy graphics I could make. I wrote programs to solve math programs, generate mathematical patterns on the screen, quiz me on my schoolwork, and do simple text-based games that were already lame by the previous decade's standards. Unless you were truly exceptional, the games you wrote for yourself did not compare at all with the excitement of games you could buy for a PC or an Apple II, and even the truly exceptional kids who created entertaining video games had to be willing to slog through hours of hard, unglamorous work. Kids today who expect programming to be entertaining the same way movies and video games are entertaining will do exactly what those kids did in the eighties: turn up their nose at programming and do something else. Kids who enjoy programming will program.
I'm right there with you man. That was me, too. My first computer experience was Adventure, and I basically made text adventures for the first few years I was programming.
That said, Pong in Shoes is 50 lines. It's pretty simple, and gives you an actual game. I wrote the basics of a SNS era RPG, and it was around 300 or so. I don't think this is a bad thing.
Pacman or space invaders would not be interesting today like they were 30 years ago. You need design, music, smooth movement, multiple things happening at once... It would be a mess to do it in simple BASIC.
On the other hand, on the Apple ][ you could code a lo-res Breakout in just a few lines of Basic -- a dozen? (From a dim memory of Wozniak's article in Byte -- he had a couple screenshots with the code in the lower third of the 40-column screen and the game running above.)
Python's a far better language, yes, but I haven't seen a game library quite so low-threshold.
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration." ~Edsger W. Dijkstra
As skeptical as I am about adhering to a specific language for teaching programming, quotes like this smack so badly of curmudgeon-ism (yes, I know who Dijkstra is) that I can't take them seriously. I learned on BASIC (and LOGO) as a young child myself and transitioning into a production language wasn't an issue.
Nonsense. I taught myself BASIC in the '80s when I was 11. I had no trouble whatsoever grasping OOP, recursion, event-driven, or functional programming.
Perhaps this is due, in part, to the fact that I was self-taught, and moved to QuickBasic Pro before I did any serious work, and left the whole world of line numbers, gotos, gosubs, and line labels behind.
I learned BASIC on an Apple II+ and I don't think Dijkstra was right on that one. It's really a different path than the one Dijkstra endorses, but it's not more or less wrong than any other.
BASIC on the Apple II was my first programming language and I loved it at the time. Once my kids are a little older, I'm going to start with Ruby. One thing that was very helpful learning basic on the old Apple was that you could use the command line to examine variables and also program on the fly. This is similar to Ruby's IRB. Being able to tinker with a program without having to compile first is very instructive and most of all fun!