I believe PICO-8 (https://www.lexaloffle.com/pico-8.php) is one of the most simple and fun environments for kids to learn programming (specially game programming).
It's very accessible and affordable.
It captures that vibe of an old computer system (where you turn it on and are ready to program immediately) with simplicity and an awesome community to learn from.
id games were some of the best of its time, containing a good mastery of technical and fun gameplay elements.
I´ve made a nice Android app with all the older .plan files documenting John Carmack´s insights on the development of Doom and Quake: https://play.google.com/store/apps/details?id=com.vitoralmei....
It looks cool but I don't understand why this needs to be an app. I'd have guessed 'offline reading' as a bonus but it needs network permissions so...?
One major issue is that Android only supports java 6. All the nice things java 8 brings aren't available. With Kotlin officially supported in Android, you can finally have nice things.
Java on Android is not the same as the latest stable Java from Oracle. Example, there is no complete Java 8 support on Android, only a few things were ported and these are only available on latest versions of Android. The problem is that on Android land people don't/can't upgrade as easily as on iOS, so as a developer you are stuck on Java 6/7.
I don't know about "wrong", per se, but one pet peeve of mine as it relates to Android development is the callbacks system that is ubiquitous in the API. Since functions don't exist in Java except as methods of a class, this means what should be a simple function definition and use of it (e.g. via a pointer) requires at least a class wrapper. It's pointless to have to write it. And this indicative of development in Java, especially for the Android platform, in general.
Others have different opinions of course, and mine is no better than theirs (or vice versa). There are good reasons for the system as implemented, because all such things have trade-offs and a "pros and cons" list. I just don't care for it.
Lower the barrier? The barrier IS lower enough even for kids...
Javascript is the basic of this generation.
There aren´t any barriers for new programmers to just sit and learn programming. The tools are already available in the browser. You can learn web programming with your PC, mobile, chromebook, macbook, "any"book.
But yes, I would really like to have more mature and integrated developer tools.
I think the big difference today is that the runtime (often cloud) and toolchain are much more involved. Nothing is self-contained any more. Dependencies are out of control.
Web apps make it easy for the user to access almost any service from almost any device. Unfortunately, this puts the burden on the developer to handle ongoing delivery, hosting, cross-platform compatibility. This can be intimidating, even insurmountable, for young developers in training.
Really interested to know if you embed ASCII diagrams in your source code / store engineering diagrams in your project repos?
My take is that the closer documentation is to the code the more useful it is and more likely it will be updated. Would be great to have your feedback on a side project in this area, a chrome extension / web service to turn Umlet diagrams into SVGs when you're viewing them through GitHub. Check it out at https://github.com/CalumJEadie/umlet-github.