Snap! is just a JS web app, it works just fine on iPads. Snap! is also the closest to "real programming" in my experience because you can make custom blocks and reporters (aka functions), lists are first class so you can nest lists or pass them to blocks or whatever with them, has lambdas, and can call JS so you have full access to the browser APIs and the JS ecosystem.