Bret Victor - Inventing on Principle
seen from Algeria
seen from China
seen from United States
seen from Malaysia
seen from United States

seen from United States

seen from United Kingdom

seen from United Kingdom

seen from Algeria
seen from India

seen from France

seen from Australia
seen from Germany

seen from United Kingdom
seen from South Korea

seen from United States

seen from Algeria
seen from China

seen from Malaysia

seen from Malaysia
Bret Victor - Inventing on Principle
Bret Victor - Inventing on Principle
This is one of the best presentation I’ve ever watched. Must see. | ‘Bret Victor - Inventing on Principle’
Bret Victor - Inventing on Principle
Bret Victor, Toolmaker (EG8)
I've blogged about Bret Victor before, and I remembered when I was deep diving into his work, stumbling across him saying that one of the reasons he left Apple was that he was frustrated a lot of cool things he worked on would never see the light of day.
After watching the latest WWDC keynote and seeing Xcode's new Playground (which is very similar to what Bret talked about in his "inventing on principle" talk), I hope he finds some solace that not all his work done at Apple was wasted.
Anyways, more goodness by Bret Victor on his next generation of tools for creators.
Edit: Found it
Bret Victor
I've been following Bret Victor over the past few years, watching, reading, and re-watching everything he puts out.
He's obviously brilliant and has some great ideas and I've been trying to think of how I could build on them.
LightTable implemented about 10% of the programming part of "Inventing on Principle" ("coding without blinders") while Swift/Xcode seem to implement about 20% of it. I admittedly jumped on the band-wagon early without a complete understanding of BV's ideas when I created Zeta-code. While breaking code apart into methods is a good idea, it's almost trivial compared to BV's concept of "interacting with data".
However, most of BV's examples involve graphical data or mathematics. While these are great things and he shows great interfaces, it misses what I (and a lot of us developers) deal with, which is text and objects (or similar data structures). It also misses all of the "little details" like data-storage, formats, naming, and caching that are the hardest parts of "engineering" computer programs. (I say "little details" here with more than a hint of irony)
Things like lists, maps, sets, and text are what make up our daily-life.
This is in part why functional-programming and reactive-programming are becoming more popular today. They allow you to compose a few well-known functions to modify your data in a complex way. If all of your tools work together, it's easier to do things than if you have a bunch of incompatible tools.
Perhaps by combining a graphical interface with FP principles we could create a new way of developing software. You could omit conditionals and loops entirely by using functional equivalents:
If/then/else ~ Filter
Reducing loops ~ Reduce
Loops ~ ForEach
Combining results ~ Concat or Zip
Of course, this doesn't address the other parts of the programming: math, comparisons, pattern-matching, modifying text, etc., but there exist ways of doing these things (by providing examples, I'll have to cover this later).
Let me know if you're interested in this.
A great talk by Bret Victor about the future (or past?) of programming.