Date: Sun, 1 Feb 2015 21:17:42 -0800
From: Bret Victor
Subject: Re: [ramble] [read at your own risk] [what is this] physical identity
(Forgot to mention the point, which was 

The entire system is transparent and modifiable

This is exactly what we want!  We want a system that is transparent and modifiable.  The Smalltalk browser was an attempt to represent a transparent, modifiable system within the constraints of the tiny rectangle.  And of course, it worked to a certain extent:

Larry Tesler gave the main part of the demo with Dan sitting in the copilot's chair and Adele and I watched from the rear. One of the best parts of the demo was when Steve Jobs said he didn't like the blt-style scrolling we were using and asked if we could do it in a smooth continuous style. In less than a minute Dan found the methods involved, made the (relatively major) changes and scrolling was now continuous! This shocked the visitors, especially the programmers among them, as they had never seen a really powerful incremental system before.

But Dan had built the entire system himself and knew it inside and out -- he already had a perfect representation of the system in his own head, which allowed him to find and make the necessary changes even through a peek-a-boo browser.

I'd like a system that is transparent in the way that (e.g.) an airplane is transparent from within the cockpit, because everything you would need to know is always there to be seen and noticed and pointed at.  

One of the interesting things about a cockpit is that a pilot and copilot can both be present in the same space, both using the system together and talking about it, but doing different things simultaneously.  This is in contrast to, say, pair-programming (where the two people can only work on a single thing at at time, because they are both locked into a single screen) or programmers-sitting-around-staring-at-their-own-laptops (where you can't really say they are present in the same working space).

It feels to me like peek-a-boo views hinder a cockpit-like "socially-transparent system".  Perhaps because (among other reasons) it's harder to understand what the people around you are doing when their tools and views are flitting in and out of existence.  They are "reaching" for their tools via invisible pathways in their own heads instead of observable pathways in the world.  Hutchins:

Simply being in the presence of others who are working does not always provide a context for learning from their actions. In the example above, the fact that the work was done in [a conversation] between the plotter and the bearing recorder opened it to other members of the team. In a similar way, the design of tools can affect their suitability for joint use or for demonstration and may thereby constrain the possibilities for knowledge acquisition. The interaction of a task performer with a tool may or may not be open to others, depending upon the nature of the tool itself. The design of a tool may change the horizon of observation of those in the vicinity of the tool.

For example, because the navigation chart is an explicit graphical depiction of position and motion, it is easy to "see" certain aspects of solutions. The chart representation presents the relevant information in a form such that much of the work can be done on the basis of perceptual inferences. Because the work done with a chart is performed on its surface -- all of the work is at the device's interface, as it were -- watching someone work with a chart is much more revealing of what is done to perform the task than watching someone work with a calculator or a computer.

The openness of a tool can also affect its use as an instrument of instruction. When the bearing recorder chooses a set of landmarks that result in lines of position with shallow intersections, it is easy to show him, on the chart, the consequences of his actions and the nature of the rememdy required... Imagine how much more difficult it would be to explain the inadequacy of the landmark assignment if the lines of position were represented as equations to be punched into a calculator rather than as lines drawn on the chart.

As the Room project progresses, I find myself starting to think more about "Dynamic Creative Play".  "Everyone is focused on the same thing. Everyone can see what everyone else is making. Everyone can understand how everyone else is making it.  Everyone can “jump in” and participate in what others are making."  The differently-colored hands, corresponding to which object they're manipulating, was David's idea.  It's strange to think that we've gotten to a point where we could do an almost overly literal implementation of this with differently-colored laser pointers.)

Attachment: play.pdf


On Feb 1, 2015, at 11:43 AM, Bret Victor wrote:


In Smalltalk, you can, using something called "The Browser," pull up the "source code" for any object in the system. "Object" in this case means anything in the system whatsoever, including windows, widgets, numbers. "Source code" is the stuff that a compiler translates into machine code so the computer can do something with it. If you want, you can modify that code right there, or copy it and create a new object with user-customized behavior.The entire system is transparent and modifiable.

The Smalltalk code browser has always felt uncomfortable to me.  One reason is the peeking-through-a-pinhole claustrophobia of only seeing the definition for a single method at a time, instead of seeing everything in context.   It seems like it should be great, in principle, to be able to pull up the code for any object you see, but to me, it feels like the code has been parceled into a thousand tiny closed boxes, and you have to synthesize an understanding of the system by peeking into each little box, one by one.

A counter to this, maybe, is this slide I did of the entire source code of Gezira on a single page.  One can imagine editing in such an environment, where you can develop a mental map for where everything is, and you can compare and cross-reference with just a movement of the eyes.  [1]

But the more germane reason here, why the Smalltalk browser feels uncomfortable, is its "peek-a-boo" nature -- when you open the browser window, a method definition pops into existence, you read or edit it, and then it poofs out of existence when you close the window.  It is very clearly a "view" is constructed on-the-fly for "data" under the "hood", instead of a thing that always exists.

A counter to this, maybe, is what I'm trying to do with the Room databases (still nascent, but the intention is there) -- the entire state of the system has a permanent location in the space, you can always point it it and it's always there and everything is there, it's self-describing (it teaches you what it means), nothing is ever hidden.  There doesn't (or shouldn't) feel like there is a "hood" where things are "under".  [2]

There's the (old?) joke that the game of "peek-a-boo" is just making fun of babies for not understanding object permanence.  The concept of "object permanence" (and finding ways to not push it too far?) seems relevant here..

---- ---- ---- ---- ----

[1]
<nile.png>

[2]

<Screen Shot 2015-01-21 at 8.40.22 PM (2).png>


On Jan 31, 2015, at 8:04 PM, Bret Victor wrote:

[pulling this from the drafts folder, written a week ago]

After rereading Craig's essay, the word "ethereal" is sticking with me.


The Web dwells in a never-ending present. It is—elementally—ethereal, ephemeral, unstable, and unreliable. Sometimes when you try to visit a Web page what you see is an error message: “Page Not Found.” This is known as “link rot,” and it’s a drag, but it’s better than the alternative. More often, you see an updated Web page; most likely the original has been overwritten. (To overwrite, in computing, means to destroy old data by storing new data in their place; overwriting is an artifact of an era when computer storage was very expensive.) Or maybe the page has been moved and something else is where it used to be. This is known as “content drift,” and it’s more pernicious than an error message, because it’s impossible to tell that what you’re seeing isn’t what you went to look for: the overwriting, erasure, or moving of the original is invisible.

I wonder if a lot of what drives me is the fight against ethereality.  Maybe what's important is not physicality or tangibility in themselves, but a kind of stability and "reliable existence" which physicality happens to provide.

[now]

I was reminded of the response I gave to Hesam's skepticism of the OOPSLA talk:

To rephrase my question now: My comment was not about the earlier parts of your talk. It is more about the parts you start showing sketches with visualizations
in the physical world: walking in the museum, lecturing with props, a book as a building space, etc. What I’m saying is that it is not clear that the best “medium”/
"representation” to perceive concept C necessarily has to be a tangible thing in the physical world.

Those representations from the earlier part of the talk would not have been possible without the invention of writing.  And writing is exactly an instance of this thing that you are so skeptical of -- turning an ephemeral mental concept into a "tangible thing in the physical world".

That shift -- from speech and memory, through lists and tables and mnemonics, to written language -- is I guess the primary example of anti-ephemeralization, where thought itself went from being ethereal and fleeting to having a stable, reliable, pointable existence.

I think that what my instincts might be reacting to is that virtual representations (such as windows on a screen) feel like they have a "slippery" character similar to speech and memory.  (Where is a word after it's been spoken?  Where is a window after it's been closed?)  But it's non-obvious, because we are used to the dichotomy of "memory is internal; writing is externalized", and we assign virtual representations to the "externalized" bin and assume they therefore provide the same benefits as writing.  And they do to a certain extent.  

But maybe the more appropriate dichotomy is not "internal vs externalized", but "slippery vs stable".  (Not sure of the right words here.)  Whether the representation is "speech-like" or "writing-like":

speech-like -- synthesized on demand and dissipated afterwards, persisting not in any "place" but just as an observer's memory of an event
writing-like -- having an independent continuing existence in a location

Maybe "persistent" representations are what I'm going for.