Increasing the pool of hirable developers does not otherwise exclude selling computing toys to the general population.
I haven't heard of Swift Playgrounds for iPad before. I've just finished watching its demo - I must say, it looks nice and has some cute solutions for entering code via touch interfaces (like that for-loop dragging thing) that I hope will spread around to other applications. That said, it's an educational app - I can learn some Swift with it. But what can I actually program with it? Can I use it to make my calendar talk with my SMS app? Or with my Bluetooth headset?
That's the thing I complain about when I say that mobile devices are developed as toys, not tools. You're always limited to some functionality provided by the vendor and third party apps. Apps that don't talk to each other, that restrict your choices to few operations their authors thought about. Not to mention apps that increasingly want to suck out and monetize all your data, but that's beside the point. On Android we have Tasker, which is something that I believe should be a default component of Android (albeit it could use some ideas from Swift Playground to make UX better). But it isn't, and the current trends in mobile, web and desktop suggests it'll never be - the end user is forbidden from using the computer, they must only ask their apps for services.
Swift Playground has full access to the iOS APIs.
https://developer.apple.com/videos/play/wwdc2016/408/
I applaud Apple for this, as it makes the developer experience closer to the Xerox PARC ideas.
EDIT: typo have => has.
The saying I've heard is that most people want elevators, but we've been selling them helicopters and blaming them when they crash.
Someone who is largely computer illiterate can download and run apps without any fear of messing things up. There is essentially no malware for iOS. They can always exit the app. They can always delete the app. If the app wants to get the user's location, or email, or documents, or pictures, it has to ask for permission from the user. The app will not mess with things that the user can't figure out - there are easy ways to check (and in some cases limit) space usage, bandwidth usage, and battery usage. Apps are now safe.
This is an amazing achievement!
However, apple has not yet figured out how to safely enable development at the same time. They're getting closer, but they're not there yet. It is obvious that that was not their top goal. There are already lots of general purpose computing devices, and if you want development access to your device, you can get it as a developer.
I've seen this being mentioned for years by various programming communities (e.g. Squeak Smalltalk), where the only work around is to buy a Mac, buy OSX, buy the Apple developer tools ("Xcode"?) and pay a $99 subscription fee in order to transfer your own app to your own iPad.
That policy was rescinded almost 6 years ago: http://daringfireball.net/2010/09/app_store_guidelines and had been instituted only a few months earlier: http://daringfireball.net/2010/04/why_apple_changed_section_...
IIRC there's a policy against running downloaded code (at least automatically downloaded code) in anything but the bundled JS runtime, but bundling an interpreter in an application and running user-provided code is not an issue. You can run a Python app on iOS (e.g. via Kivy) and there are Python interpreters in the appstore.
> buy the Apple developer tools ("Xcode"?)
That's free (with a mac and OSX obviously): https://itunes.apple.com/app/xcode/id497799835
> and pay a $99 subscription fee in order to transfer your own app to your own iPad.
The developer account is only necessary to publish in the store, since Xcode7 and iOS9 you can sideload applications with a regular appleid: http://www.howtogeek.com/230225/how-to-sideload-apps-onto-an...
Ie running what the user types is OK.
(At least as far as I remember.)