www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Bret Victor - Inventing on Principle

reply "Regan Heath" <regan netmail.co.nz> writes:
Hope no-one minds..

I stumbled across this video which I thought was pretty darn cool:
http://www.youtube.com/watch?v=PUv66718DII

R

-- 
Using Opera's revolutionary email client: http://www.opera.com/mail/
Nov 19 2012
next sibling parent reply Walter Bright <newshound2 digitalmars.com> writes:
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?
Nov 19 2012
next sibling parent "bearophile" <bearophileHUGS lycos.com> writes:
Walter Bright:

 http://www.youtube.com/watch?v=PUv66718DII
Can you give us a summary or synopsis?
It's not easy to summarize it. Many talks are little more than the slides they are based on, but this talk contains lot of graphics and animation, it's really a talk that you have to see if you want to appreciate its contents, because it's mostly about visual ideas. It discusses about using visualization to help design code and program, and more. This talk is now famous, it was a start of a little "revolution". After that talk many developments have happened. Maybe even the future LightTable IDE was inspired a bit by it. I have seen Khan and his academy software follow some of the ideas contained in that talk to teach JavaScript, and then I have seen another talk explain similar ideas better, and then other people criticize it a lot. In the end part of me likes those ideas, and part of me doesn't like it. To teach things like StarLogo are in my opinion better for newbie programmers, but that talk is not just about new programmers. Some of those ideas are cool. I have never linked this talk or the successive developments in this newsgroup because it being good stuff to know for every programmer, it's not much related to D and the not-interactive style of programming it asks for. Bye, bearophile
Nov 19 2012
prev sibling next sibling parent reply Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
On 11/19/12 7:50 PM, Walter Bright 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?
"Worth watching." Andrei
Nov 19 2012
next sibling parent reply "renoX" <renozyx gmail.com> writes:
On Tuesday, 20 November 2012 at 04:30:19 UTC, Andrei Alexandrescu 
wrote:
 On 11/19/12 7:50 PM, Walter Bright 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?
"Worth watching." Andrei
Usually I dislike watching videos instead of slides, but this time I agree. I think that this video is about giving instantaneous feedback to users and what they can gain from it: so slides aren't "good enough" here. That said, when he plays with numeric values in the code, I can't help thinking: this is wrong there shouldn't be "magical" numerical value in the code as this is not maintainable/readable. renoX
Nov 20 2012
parent "Regan Heath" <regan netmail.co.nz> writes:
On Tue, 20 Nov 2012 09:54:43 -0000, renoX <renozyx gmail.com> wrote:
 That said, when he plays with numeric values in the code, I can't help  
 thinking: this is wrong there shouldn't be "magical" numerical value in  
 the code as this is not maintainable/readable.
Agreed. Imagine if the magical numbers were all defined with CONSTANT's as any good programmer would do. In that case clicking one and dragging the slider would by default, change the value for all uses of CONSTANT. Alternately, there could be a hot-key which defines a new CONSTANT with the new slider value for that single usage. All doable with a sufficiently clever IDE. R -- Using Opera's revolutionary email client: http://www.opera.com/mail/
Nov 20 2012
prev sibling parent Walter Bright <newshound2 digitalmars.com> writes:
On 11/19/2012 8:30 PM, Andrei Alexandrescu wrote:
 On 11/19/12 7:50 PM, Walter Bright 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?
"Worth watching."
Ok, I watched it. I thought his principle was a great one, although it's pushing on a well-known idea that the faster the feedback cycle on a design, the more you can "play" with the design to optimize it.
Nov 20 2012
prev sibling parent reply "Regan Heath" <regan netmail.co.nz> writes:
On Tue, 20 Nov 2012 00:50:42 -0000, Walter Bright  
<newshound2 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/
Nov 20 2012
next sibling parent "Regan Heath" <regan netmail.co.nz> writes:
On Tue, 20 Nov 2012 12:44:51 -0000, Regan Heath <regan netmail.co.nz>  
wrote:
 A killer IDEA ...
s/IDEA/IDE -- Using Opera's revolutionary email client: http://www.opera.com/mail/
Nov 20 2012
prev sibling parent "Paulo Pinto" <pjmlp progtools.org> writes:
On Tuesday, 20 November 2012 at 12:45:46 UTC, Regan Heath wrote:
 On Tue, 20 Nov 2012 00:50:42 -0000, Walter Bright 
 <newshound2 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
The sad part is that many of these ideas were already available, to certain extent, in the Smalltalk and Lisp environments. Now, like with many other concepts, we are kind of rediscovering the principles. -- Paulo
Nov 21 2012
prev sibling next sibling parent "John Colvin" <john.loughran.colvin gmail.com> writes:
On Monday, 19 November 2012 at 14:27:51 UTC, 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

 R
Original on vimeo: http://vimeo.com/36579366
Nov 20 2012
prev sibling next sibling parent Nick Sabalausky <SeeWebsiteToContactMe semitwist.com> writes:
On Mon, 19 Nov 2012 14:26:59 -0000
"Regan Heath" <regan netmail.co.nz> wrote:

 Hope no-one minds..
 
 I stumbled across this video which I thought was pretty darn cool:
 http://www.youtube.com/watch?v=PUv66718DII
 
 R
 
That is really cool. It does wonder offtopic and get a little pretentious near the end, but very interesting overall. The game example is something that, more or less, exists already. It has some downsides, but certainly a useful tool. The animation example would definitely need some more precise abilities added (such as timelines for all the movement/rotation/etc shown as editable line graphs) since "performance" is a good thing but also has drawbacks. But it definitely looks like a great tool to be added to a more fully-fleshed animation toolbox. The multi-touch aspect is gimmicky and doesn't add anything - and could even get in the user's way. So I would design it so if you didn't want to hold the item button on the left, you could just tap it to select it. But otherwise, definitely some good stuff. The non-game code example was definitely the most original and eye-opening one, IMO. Also probably the hardest to implement, but definitely something I'd like to see become common.
Dec 02 2012
prev sibling next sibling parent "SomeDude" <lovelydear mailmetrash.com> writes:
On Monday, 19 November 2012 at 14:27:51 UTC, 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

 R
Yeah, this talk is quite famous.
Dec 02 2012
prev sibling parent "Tommi" <tommitissari hotmail.com> writes:
I found this article (Learnable Programming) by Bret Victor 
interesting:


Dec 03 2012