======================== Taking Off the Blindfold ======================== :Authors: Bret Victor :Time: 4:30 pm - 5:20 pm :Session: https://thestrangeloop.com/sessions/taking-off-the-blindfold :Slides: http://worrydream.com/LearnableProgramming/ *Visible Programming: Designing a programming environment around how human beings do human being things* Talk about programming environments: the software we use to create other software. The purpose of a programming environment is not to increase productivity ( implies "type faster"), but to see and understand what the program is doing. Five principles for the design of a programming environment #. Read the vocabulary -- what the program says #. Follow the flow -- what happens when #. See the state -- what's going on during execution #. Create by reacting -- sculptors start with a lump of clay and incrementally turn it into an element. The sculptor does not do a single pass and produce an elephant. #. Create by abstracting -- we have a tower of abstractions, and we start at the bottom with a simple abstraction, and the move up. The environment should provide the tools to do this. Read the Vocabulary =================== If you look at a bit of javascript code, there's a lot of questions to answer before you can work on the code. What do the functions do? What do these arguments mean? What's the range and units? Right now the answer is usually "look it up" or "look at the manual". What if you could hover over the parameters and see what they mean. Make the meaning transparent, and explain in context. [ This talk was very visual, difficult to describe in notes. ]