proj-oot-ootLearnToProgram

I fondly remember that when i was a child, my dad's Apple c computer came with a bunch of disks, one of which was a graphical tutorial that showed you at a basic level how computers work (information flying from the disk into memory, from the memory into the CPU, etc), and one of which was an interactive tutorial introduction to programming in BASIC. These are how i got into programming when i was a kid. It strikes me that in 2014 afaict modern computers don't come with similar things, making it less likely that kids will get into programming.

In particular, since people buy mobile devices for their kids these days, there needs to be such things available for mobile devices.

Later on, I also remember how easy it was to make graphical applications in HyperCard?, and again I'm struck by the fact that nothing similar seems to exist on modern devices.

So, one design goal of Oot is that it would be a good language to base these things on (an interactive learn-to-program tutorial for people who know nothing about computers; a graphical presentation of how computers work; a very easy-to-use hypermedia authoring tool), and that those things would run on the cheap platforms that are most available to young kids these days.

I say a hypermedia tool, but kids probably also want to create ordinary applications, and also games. If you take hypercard and add local networking, you end up with the capability to write local servers and games over local networks with small numbers of people. It is easy to see that one thing that people would write for these might be local virtual worlds. If you then add global networking you get the capability to write MMOs. And one type of MMO is 3-D virtual worlds. Networked games or high production value games still take a lot of work in conventional languages, and on top of that, large-scale MMOs, and virtual worlds, are still an architectural and design challenge. So i don't think it's feasible to say that Oot will make these things easy or even possible for kids who didn't previously know how to program to do them.

What we do want is for Oot to be a good language for scripting within these things, e.g. for kids to create their own interactive objects and creatures within games or virtual worlds.

And we want Oot to be a good language for implementing these things as a prototype (Oot's emphasis on latency over throughput, its low priority on performance, and its distance 'from the metal' might prevent it from being the best language for production implementations of high throughput applications like cutting edge games and MMO servers).

And if we reduce our scope and expectations and compromise a bit, perhaps we could create a language and toolset that allows even newbie programmer kids to create limited, simple versions of these things; like lo-fi games for small numbers of players, hypermedia within a restrictive framework like HyperCard?'s, and simple distributed 'MMOs' that don't actually permit large numbers of players to be simultaneously active in any one node.

See also ootMmo for more notes on virtual worlds and Oot.

The requirement that a Oot IDE be available on mobile platforms available to young kids implies that it should probably be HTML5, because at least one major platform vendor (Apple) does not currently permit full-featured native IDEs in their app store. See ootMmo for more about this and about other ideas relating to Oot and HTML5.

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.

To reads

What disks came with the Apple II?

I think (not too sure) our Apple c may have come with these disks: Disk 1: Exploring the Apple Logo (front) and The Inside Story (back); Disk 2: Getting Down to Basic; Disk 3: System Utilities; Disk 4: The Apple At Work (80 cols on the front, 40 cols on the back). and on something: An introduction to the Apple IIc Computer; Sampler with some games.

In other words, we want:

Even though mobile devices today come with access to many free games and word processors, it is still useful to have Oot come with some games and a word processor written in Oot so that the new programmers can see how they work.