If you're going to base it on Javascript, at least make it Coffeescript-like. I also agree that some basic parallelism primitives would be great; it is probably possible to build these into a Coffeescript-like dialect using JS under the hood (though they'd probably optimize even better if you could implement them natively instead of in JS). <div>
<br><div class="gmail_quote">2012/3/14 Alan Kay <span dir="ltr"><<a href="mailto:alan.nemo@yahoo.com">alan.nemo@yahoo.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div style="font-size:14pt;font-family:times new roman,new york,times,serif"><div><span>Hi Scott --</span></div><div><br><span></span></div><div><span>1. I will see if I can get one of these scanned for you. Moore tended to publish in journals and there is very little of his stuff available on line.</span></div>
<div><br><span></span></div><div><span>2.a. "if (a<b) { ... }" is easier to read than "if a<b then ..."? There is no hint of the former being tweaked for decades to make it easier to read.</span></div>
<div><br><span></span></div><div><span>Several experiments from the past cast doubt on the rest of the idea. At Disney we did a variety of "code display" generators to see what kinds of transformations we could do to the underlying Smalltalk (including syntactic) to make it something that could be subsetted as a "growable path from Etoys".
<br></span></div><div><span><br></span></div><div><span>We got some good results from this (and this is what I'd do with Javascript in both directions -- Alex Warth's OMeta is in Javascript and is quite complete and could do this).</span></div>
<div><br><span></span></div><div><span>However, the showstopper was all the parentheses that had to be rendered in tiles. Mike Travers at MIT had done one of the first tile based editors for a version of Lisp that he used, and this was even worse.</span></div>
<div><br><span></span></div><div><span>More recently, Jens Moenig (who did SNAP) also did a direct renderer and editor for Squeak Smalltalk (this can be tried out) and it really seemed to be much too cluttered.</span></div>
<div><br><span></span></div><div><span>One argument for some of this, is "well, teach the kids a subset that doesn't use so many parens ...". This could be a solution.</span></div><div><br><span></span></div>
<div><span>However, in the end,
I don't think Javascript semantics is particularly good for kids. For example, one of features of Etoys that turned out to be very powerful for children and other Etoy programmers is the easy/trivial parallel methods execution. And there are others in Etoys and yet others in Scractch that are non-standard in regular programming languages but are very powerful for children (and some of them are better than standard CS language ideas).</span></div>
<div><br><span></span></div><div><span>I'm encouraging you to do something better (that would be ideal). Or at least as workable. Giving kids less just because that's what an existing language for adults has is not a good tactic.<br>
</span></div><div><br><span></span></div><div><span>2.c. Ditto 2.a. above</span></div><div><br><span></span></div><div><span>2.d. Ditto above
above</span></div><div><br><span></span></div><div><span>Cheers,</span></div><div><br><span></span></div><div><span>Alan<br></span></div><div><br><span></span></div><div><span><br></span></div><div><br><blockquote style="border-left:2px solid rgb(16,16,255);margin-left:5px;margin-top:5px;padding-left:5px">
<div style="font-family:times new roman,new york,times,serif;font-size:14pt"> <div style="font-family:times new roman,new york,times,serif;font-size:12pt"> <div dir="ltr"> <font face="Arial"><div class="im"> <hr size="1">
<b><span style="font-weight:bold">From:</span></b> C. Scott Ananian <<a href="mailto:cscott@laptop.org" target="_blank">cscott@laptop.org</a>><br> </div><b><span style="font-weight:bold">To:</span></b> Alan Kay <<a href="mailto:alan.nemo@yahoo.com" target="_blank">alan.nemo@yahoo.com</a>> <br>
<b><span style="font-weight:bold">Cc:</span></b> IAEP SugarLabs <<a href="mailto:iaep@lists.sugarlabs.org" target="_blank">iaep@lists.sugarlabs.org</a>>; Fundamentals of New Computing <<a href="mailto:fonc@vpri.org" target="_blank">fonc@vpri.org</a>>; Viewpoints Research <<a href="mailto:all@vpri.org" target="_blank">all@vpri.org</a>> <br>
<b><span style="font-weight:bold">Sent:</span></b> Wednesday, March 14, 2012 10:25 AM<br> <b><span style="font-weight:bold">Subject:</span></b> Re: [IAEP] [fonc] Barbarians at the gate! (Project Nell)<br> </font> </div>
<div>
<div class="h5"> <br>
<div>On Wed, Mar 14, 2012 at 12:54 PM, Alan Kay <span dir="ltr"><<a rel="nofollow" href="mailto:alan.nemo@yahoo.com" target="_blank">alan.nemo@yahoo.com</a>></span> wrote:<br><div><blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div style="font-size:14pt;font-family:times new roman,new york,times,serif"><div><span style="font-size:14pt">The many papers from this work greatly influenced the thinking about personal computing at Xerox PARC in the 70s. Here are a couple:</span><br>
</div><div><span><br>-- O. K. Moore, Autotelic Responsive Environments and Exceptional Children, Experience, Structure and Adaptabilty (ed. Harvey), Springer, 1966<br>-- Anderson and Moore, Autotelic Folk Models, Sociological Quarterly, 1959<br>
</span></div></div></div></blockquote><div><br></div><div>Thank you for these references. I will chase them down and learn as much as I can.</div><div> </div><blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div style="font-size:14pt;font-family:times new roman,new york,times,serif"><div><span>2. Separating out some of the programming ideas here:</span></div><div><br><span></span></div><div><span>a. Simplest one is
that the most important users of this system are the children, so it would be a better idea to make the tile scripting look as easy for them as possible. I don't agree with the rationalization in the paper about "preserving the code reading skills of existing programmers".</span></div>
</div></div></blockquote><div><br></div><div>I probably need to clarify the reasoning in the paper for this point.</div><div><br></div><div>"Traditional" text-based programming languages have been tweaked over decades to be easy to read -- for both small examples and large systems. It's somewhat of a heresy, but I thought it would be interesting to explore a tile-based system that *didn't* throw away the traditional text structure, and tried simply to make the structure of the traditional text easier to visualize and manipulate.</div>
<div><br></div><div>So it's not really "skills of existing programmers" I'm interested in -- I should reword that. It's that I feel we have an existence proof that the traditional textual form of a program is easy to read, even for very complicated programs. So I'm trying to scale down the thing that works, instead of trying to invent something new which proves unwieldy at scale.</div>
<div><br></div><blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div style="font-size:14pt;font-family:times new roman,new york,times,serif"><div><span>b. Good idea to go all the way to the bottom with the children's language.</span></div>
<div><br>
<span></span></div><div><span>c. Figure 2 introduces another -- at least equally important language -- in my opinion, this one should be made kid usable and programmable -- and I would try to see how it could fit with the TS language in some way. <br>
</span></div></div></div></blockquote><div><br></div><div>This language is JSON, which is just the object-definition subset of JavaScript. So it can in fact be expressed with TurtleScript tiles. (Although I haven't yet tackled quasiquote in TurtleScript.)</div>
<div><br></div><blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div style="font-size:14pt;font-family:times new roman,new york,times,serif"><div><span>d. There is another language -- AIML -- introduced for recognizing things. I would use something much nicer, easier, more readable, etc., -- like OMeta -- or more likely I would go way back to the never implemented Smalltalk-71 (which had
these and some of the above features in its design and also tried to be kid usable) -- and try to make a version that worked (maybe too hard to do in general or for the scope of this project, but you can see why it would be nice to have all of the mechanisms that make your system work be couched in kid terms and looks and feels if possible).</span></div>
</div></div></blockquote><div><br></div><div>This I completely agree with. The AIML will be translated to JSON on the device itself. The use of AIML is a compromise: it exists and has well-defined semantics and does 90% of what I'd like it to do. It also has an active community who have spend a lot of time building reasonable dialog rules in AIML. At some point it will have to be extended or replaced, but I think it will get me through version 1.0 at least.</div>
<div> </div><div>I'll probably translate the AIML example to JSON in the next revision of the paper, and state the relationship of JSON to JavaScript and TurtleScript more precisely.</div><div><br></div><blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div style="font-size:14pt;font-family:times new roman,new york,times,serif">
<div><span style="font-size:14pt">3. It's out of the scope of your paper and these comments to discuss "getting kids to add other structures besides stories and narrative to think with". You have to start with stories, and that is enough for now. A larger scale plan (you may already have) would involve a kind of weaning process to get kids to add non-story thinking (as is done in math and science, etc.) to their skills. This is a whole curriculum of its own.</span><br>
</div><div><br><span></span></div><div><span>I make these comments because I think your project is a good idea, on the right track,
and needs to be done</span></div></div></div></blockquote><div><br></div><div>Thank you. I'll keep your encouragement in mind during the hard work of implementation.</div><div> --scott</div><div><br></div></div>-- <br>
( <a href="http://cscott.net" target="_blank">http://cscott.net</a> )<br>
</div><br><br> </div></div></div> </div> </blockquote></div> </div></div><br>_______________________________________________<br>
IAEP -- It's An Education Project (not a laptop project!)<br>
<a href="mailto:IAEP@lists.sugarlabs.org">IAEP@lists.sugarlabs.org</a><br>
<a href="http://lists.sugarlabs.org/listinfo/iaep" target="_blank">http://lists.sugarlabs.org/listinfo/iaep</a><br></blockquote></div><br></div>