Tangentially: this reasoning is anything but apocryphal. See for example <a href="http://www.youtube.com/watch?v=wIiDomlEjJw">http://www.youtube.com/watch?v=wIiDomlEjJw</a>.<div><br></div><div>To recapitulate my part of the discussion:<br>

<div><div><br></div><div>I think the big problem with visual tools is just that the computers haven't caught up to our brains yet. Whiteboard diagramming is, in my view, one of the absolute most efficient ways I've encountered of conveying models of programs to other human beings. The trouble is that whereas other human beings have enough mental state in common with us to follow along and "parse" our visualizations, computers are still in the stone age with respect to this sort of interpretation -- there's vast amounts of work to be done in cognitive science and image recognition before they get anywhere close.</div>

<div><br></div><div>Text, on the other hand, is a pretty low-bandwidth medium. If I have to describe a system to you using only text (and especially if I don't get any feedback from you -- if it's a document, not a conversation), I'm going to have to write an extremely detailed design document. As a rule of thumb, I'm going to go out on a limb and say that the size of this document scales roughly linearly with the size of the resulting program in a modern high-level language.</div>

<div><br></div><div>The advantage to programming in text is that the computers are at much less of a comparative disadvantage to us than they are with visualizations. Computers can handle text pretty well at this point, and -- especially when they're allowed to make the rules for what kind of text you get to write -- they're pretty good at turning a program description (say, Ruby code) into a working model of it (say, a running process). They're still pretty crappy conversationalists, and they're downright terrible at seeing intent behind code, but the situation is at least a little less unbalanced.</div>

<div><br></div><div>So the problem with visual programming tools is that they attempt to work in a modality where you're used to fast, high-bandwidth, low-overhead interactions with other people, but they fail to deliver because the guy sitting next to you interpreting the whiteboard is a deaf, autistic four-year-old, and you're really better off just writing him a letter.</div>

<div><br></div><div>In this framework, that study might suggest that advanced programmers are more used "talking" to the computer (cf. looking at output) than they are to trying to reverse-engineer its mental state by staring at its bits and pieces. It's interesting stuff for sure -- thanks for the link.</div>

<div><br><div class="gmail_quote">On Tue, Sep 1, 2009 at 4:31 AM, Praveen Sinha <span dir="ltr"><<a href="mailto:dmhomee@gmail.com">dmhomee@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

I heard a story once about a math teacher that always taught their students using hand-eye models instead of just visualization.  For example, when teaching simple derivatives, they would use their hand to grab the exponent and drag it down to the multiplier positions, and ask their students to go through the same motions.  The reasoning (however apocryphal it may or may not be) was that the hands and fingers had a lot of circuitry built in for the detailed oriented repeated skills like programming / knitting / making food / solving equations / solving video games.  Come to think of it, maybe I'll try a kinesthetic approach to teaching in whatever my next workshop is...  At any rate, maybe you are both right! :)<br>


<br>On an unrelated note, another toy I would love to have at noisebridge is a eye tracking rig.....<br><br><br><div class="gmail_quote"><div><div></div><div class="h5">On Tue, Sep 1, 2009 at 12:54 AM, Naomi Most <span dir="ltr"><<a href="mailto:pnaomi@gmail.com" target="_blank">pnaomi@gmail.com</a>></span> wrote:<br>


</div></div><blockquote class="gmail_quote" style="border-left:1px solid rgb(204, 204, 204);margin:0pt 0pt 0pt 0.8ex;padding-left:1ex"><div><div></div><div class="h5">Yeah, that's interesting.<div><br></div><div>Just to recapitulate my part of the discussion of programming phenomenology:<br>


<div><br></div><div>I posit that the physical act of programming involves holding mental frameworks and objects with their attendant potentialities all in mind.  Most programmers I know, including myself, can attest to a "set-up" time before actually producing new code of any worth that is directly proportionate to the size of the project and existing codebase.  </div>



<div><br></div><div>This is the sort of set-up that happens when you've stepped away from a project long enough that you've had to load other complex state in the meantime (e.g. negotiating dinner with significant other). So, when you come back to it, smaller projects might set you back 5 minutes of set-up time in your brain, whereas larger projects might require an hour or more.</div>



<div><br></div><div>Why this is relevant to text versus visual tools:</div><div><br></div><div>Visual tools seem to attempt to provide the sort of representation that happens in the brain during the practice of programming.  In the beginning stages, they do seem to help; in later stages (and not very far down the line) they seem to become a hindrance, making more aspects of the model obtuse rather than easier to mentally manipulate. </div>



<div><br></div><div>At some point, your brain just becomes way better as a tool of model state-holding and manipulation than the visual tool, and you fall back on the text to provide you with pure input and output for the models and frames in your mind.</div>



<div><br></div><div>To give a somewhat politically incorrect analogy, visual tools can get you about as far with programming as an autistic brain can get you in peaceful negotiations of dinner.</div><div><br></div><div>--Naomi</div>



<div><br></div><div>ps. the irony of the use of the word "manipulate", rooted in the word "hand", is not lost on me.</div><div><br></div><div><br></div><div><div><div></div><div><br><br><div class="gmail_quote">


On Sun, Aug 30, 2009 at 9:26 PM, Jason Dusek <span dir="ltr"><<a href="mailto:jason.dusek@gmail.com" target="_blank">jason.dusek@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="border-left:1px solid rgb(204, 204, 204);margin:0pt 0pt 0pt 0.8ex;padding-left:1ex">  This paper echoes a notion that came out of a discussion Naomi<br>
  and I had after I mentioned some comments Meryl made in my<br>
  Ruby class. The authors say:<br>
<br>
    Overall, throughout the whole debugging session expert<br>
    programmers – who also found more bugs – relied more on the<br>
    textual representation of the program than the less<br>
    experienced programmers did. Output of the program became<br>
    more important than visualization at later phases of the<br>
    debugging strategies of experts, while novice programmers<br>
    tended to rely on the visualization.<br>
<br>
  The accompanying graph (page 8 of 15) shows us that, while<br>
  novices spend substantially more time looking at the visual<br>
  representation, both groups spend most of their time looking<br>
  at the code.<br>
<br>
  This dovetails well with my changing experience of program<br>
  development: I came to care less and less for visual tools and<br>
  code visualization as I become more comfortable with just<br>
  building the model for myself.<br>
<br>
  Perhaps our visual tools are simply inadequate and successful<br>
  programmers are those who can adapt to the paucity of tools;<br>
  or perhaps the mentality required for programming is little<br>
  aided by visuals. I tend to think the latter but the research<br>
  can be read either way.<br>
<font color="#888888"><br>
--<br>
Jason Dusek<br>
<br>
<a href="http://www.ppig.org/papers/19th-Bednarik.pdf" target="_blank">http://www.ppig.org/papers/19th-Bednarik.pdf</a><br>
</font></blockquote></div><br><br clear="all"><br></div></div>-- <br>---<br>Naomi Most<br>Producer<br>Little Moving Pictures<br><br>+1-415-728-7490<br><a href="mailto:naomi@littlemovingpictures.com" target="_blank">naomi@littlemovingpictures.com</a><br>



skype: nthmost<br><br><a href="http://twitter.com/nthmost" target="_blank">http://twitter.com/nthmost</a><br>
</div></div>
<br></div></div>_______________________________________________<br>
Noisebridge-discuss mailing list<br>
<a href="mailto:Noisebridge-discuss@lists.noisebridge.net" target="_blank">Noisebridge-discuss@lists.noisebridge.net</a><br>
<a href="https://www.noisebridge.net/mailman/listinfo/noisebridge-discuss" target="_blank">https://www.noisebridge.net/mailman/listinfo/noisebridge-discuss</a><br>
<br></blockquote></div><br>
<br>_______________________________________________<br>
Noisebridge-discuss mailing list<br>
<a href="mailto:Noisebridge-discuss@lists.noisebridge.net">Noisebridge-discuss@lists.noisebridge.net</a><br>
<a href="https://www.noisebridge.net/mailman/listinfo/noisebridge-discuss" target="_blank">https://www.noisebridge.net/mailman/listinfo/noisebridge-discuss</a><br>
<br></blockquote></div><br></div></div></div>