notes-computer-jasper-jasperHtml5

Jasper intends, among other things, to create a learn-to-program interactive tutorial that is available to young kids, and also to allow these kids to create their own programs. These days young kids are more likely to have more access to mobile devices than to desktop machines. So we need to do these things on mobile platforms.

Some platforms today, e.g. Apple, have heavy-handed 'curation' of native apps that prohibit apps that download uncurated code; this makes it difficult to have real in-app IDEs. But today, even Apple supports HTML5 browser apps, so this is an 'escape hatch' that allows us to present a real IDE on those devices. Perhaps Apple will have changed its policies or become unpopular by the time Jasper exists, but this general strategy might still be good in light of unknown future platform vendors with similar curation policies.

Therefore, Jasper must have functional tooling on the HTML5 platform.

Since we have to focus on the HTML5 platform anyway, and since we want to make an easy hypermedia authoring IDE, we may as well have this IDE produce HTML5. But HTML5 is huge and complicated, and we want our authoring IDE to be easy. In addition, we don't want to bother to implement authoring tools for every darn part of the set of huge HTML5 standards. See jasperHtml5Basic for notes on which subset we should support.