Bret Victor - Inventing on Principle
Regan Heath
regan at netmail.co.nz
Tue Nov 20 04:44:51 PST 2012
On Tue, 20 Nov 2012 00:50:42 -0000, Walter Bright
<newshound2 at digitalmars.com> wrote:
> On 11/19/2012 6:26 AM, Regan Heath wrote:
>> Hope no-one minds..
>>
>> I stumbled across this video which I thought was pretty darn cool:
>> http://www.youtube.com/watch?v=PUv66718DII
>
> Can you give us a summary or synopsis?
Sorry, I really should have done that. As bearophile says it's hard to
summarise, but as Andrei mentioned it's well worth watching.
It is essentially about making it easier to "create" things. Finding
areas where the process of creating something is difficult and analysing
why. In most of the cases he shows the problem is a detachment between
the method of creation and the result.
Like code for example, we write code but get no immediate feedback of our
changes. Instead we have to compile, <insert steps for
copy/installing/etc the result>, then run the program to see the results.
He shows an interactive IDE which displays the program output side by side
with the code, in this case a game with a character that jumps about the
place. He can click on a variable and alter it's value with a slider and
see immediate feedback. There are also some neat tools for manipulating
time allowing you to see the result of changes over time and tweak values
to exactly those values you want/need. (This example reminded me of the
game Braid).
Another example is of defining a new algorithm. In this example the IDE
asks for example input values, and then it shows the variables of the
algorithm at each stage as the programmer defines them. It shows the
values for each iteration of a loop, and allows the coder to test various
input and actually "see" the results rather than having to imagine them
all in their head.
Both of these are examples of where creation is hindered by the programmer
having to visualise the result as they design - something all good
developers can do well, sure, but why force ourselves to pretend to be a
computer when we have a computer sitting in front of us which is
infinitely better at it than we are?
How many times have we sat there and written the content of a string out
on paper, labeled the indexes, drawn pointers to characters, etc in order
to design an algorithm that deals with strings. I still do this fairly
frequently, even when I'm confident sure I've got it right, simply to
verify my work and check for edge cases.
One further example shows him designing an animation in the conventional
way using key frames and then again using a new system of touch based
commands. This example was born out of the frustration he experienced
spending a whole day animating a leaf falling from a tree in a natural way
(using key frames) - a task he accomplishes in less than 2 minutes as you
watch using his new system.
A killer IDEA like those shown should be doable in D, for D. We have a
debugger (or code that can debug D) and the compile time speed of D is
such that on-the-fly compile and display shouldn't be prohibitively slow.
All it needs is someone motivated and perhaps easier/better linking
between the required parts i.e. D front end, compiler, debugger, GUI
toolkit..
Regan
--
Using Opera's revolutionary email client: http://www.opera.com/mail/
More information about the Digitalmars-d
mailing list