This is so inspiring, especially after having read and followed some of Bret Victor's previous work. You can literally see the progression of his thoughts moving towards this, demonstrating that he really is driven by inventing along the principal of immediate feedback for creators.
For anyone who may read this thread and think the talk is just a showcase for Bret's design and coding skills, it's not. The demos are awesome in their own right, but they exist to set the stage for the rest of the talk.
"The purpose of this talk is to tell you that this activist lifestyle is not just for social activists. As a technologist you can recognize the wrong in the world. You can have a vision for what a better world could be. You can dedicate yourself to fighting for principle. Social activists typically fight by organizing, but you can fight by inventing."
He explains how he got to where he is, gives other examples from computing of people whose work transcends a skill or craft, and walks through how you can work toward that if you want to.
Yeah, this right here is probably the Mother of All Demos for this generation. Truly stunning. Every time Bret posts something I think he's finally released his masterstroke, but then he one ups himself the next time. Can't wait to see what he does next.
Might I note that spreadsheets have immediate feedback. They also enforce a pure functional style (which you can break out of by bolting on a script written in a completely different language. Makes it possible to mutate state, but you have to do it consciously, and it requires a context switch).
Both of these are great features for programming. I sometimes use a spreadsheet to "mock up" a function, if I think the function is amenable to such a thing.
Unfortunately, spreadsheets have pretty severe limitations as general computing environments.
Unfortunately, spreadsheets have pretty severe limitations as general computing environments.
I'm working on this problem, so comments like this are like crack to me.
Please say more. What severe limitations? Can you imagine a more powerful spreadsheet that didn't have them? If such a spreadsheet existed, what could be done with it?
Let me try and cover most limitations by saying this: a spreadsheet should basically be an interface to a Lisp interpreter. The ability to define new functions (within the spreadsheet itself) is the biggest thing, I guess. But if the spreadsheet is just an interface to Lisp, you get everything else, too.
Another problem is that you're stuck working with tables. Tables are great, but I want to be able to edit other data structures in a spreadsheet-like way.
Especially trees. Trees are everywhere. Mathematical functions, HTML, code in pretty much every programming language, XML documents (which include Word and Excel). All trees.
Joel Spolsky claims in his Trello post (http://www.joelonsoftware.com/items/2012/01/06.html) that Excel is about simple creation of tables, and great mass-appeal products are about the data structure they revolve around.
I think trees are underserved. I want to be able to write a tree, not 2 + 4 * 5 / 6, or <html><head><body></html>, or (((()()()))()())))(()()()())).
Plus you don't have to give up tables. Making a table out of a tree is easy (think HTML tables). Modeling a tree with a table is more clunky, in my opinion.
I think that a well-designed product along these lines could drag millions of "non-programmer" spreadsheet users all the way to Lisp.
I think that a well-designed product along these lines could drag millions of "non-programmer" spreadsheet users all the way to Lisp.
I love you! Please email me. Address in my HN profile.
The ability to define new functions (within the spreadsheet itself) is the biggest thing
Agreed. There are others, but if you have functions, especially functions as values, you can build most of them. But it isn't obvious how to integrate "native" spreadsheet functions into the spreadsheet as we know it. (Even Simon Peyton-Jones co-authored a paper on this, to little avail.)
Joel Spolsky claims in his Trello post that Excel is about simple creation of tables.
Right, thereby implying that Trello is what Excel really wants to be for most users. I bet against that. I don't think there's a simpler tabley core struggling to emerge from Excel, I think Excel is the core. The spreadsheet is the local optimum, and local alternatives will either fail to attract users away from Excel and/or get sucked into the black hole of becoming spreadsheets themselves. Why? Because spreadsheets let users play with data in a way that nothing else does. Excel isn't static tables, it's interactive computation.
Of course, when they eventually add formulas to Trello, Joel will write brilliantly about how everybody needs formulas. :) But can you iterate a quite-different product into a general-purpose spreadsheet? I don't believe so. That's Greenspun city.
I think trees are underserved [...] Plus you don't have to give up tables. Making a table out of a tree is easy
Here we may diverge. If the spreadsheet is a UI for a dynamic table, what does the UI for a dynamic tree look like? Seems to me you're likely to end up with something quite different-looking, which will make it hard to appeal to Excel users.
Making a table out of a tree is easy (think HTML tables)
Meaning the table as a root node, rows as children of it, and cells as children of rows? Again, though, the UI won't look like a simple Excel-style grid if it needs to render all trees instead of only "square" ones. The danger here is that if you make something too abstract, you lose the non-programmer spreadsheet users, the great bulk of the audience. Your tree idea lives or dies on whether there's a simple, general UI for it - where "simple" means "seems simple to Excel users". And also, I suppose, on whether there's a natural formula language for referencing data laid out in trees. Data references in formulas are critical to the way spreadsheets work, and they're the hard part (other than that, expression trees are easy to compute) - and the way spreadsheets do it relies on the grid layout.
Modeling a tree with a table is more clunky
It is clunky, yes. I'm not sure how to do it well. When people lay out hierarchical data in spreadsheets they tend to use indentation to indicate parent-child relationships. Significant whitespace I guess!
CUSEC (the conference where this was filmed) is hands-down the best technology conference I've ever been to. If you're anywhere near Montreal, I'd definitely recommend that do what you can to get up there (it's only $100!) since every year they have amazing talks like this that remind you why you became a developer.
If you wouldn't mind - I'm curious to hear what some of the other talks you've heard at CUSEC were? This one is amazing and I'd love to make it up there some year if the rest are even half the caliber of this.
From the Vimeo page above you'll see a list of the videos on the side that have been published by CUSEC. Some ones that I liked are by Reg Braithwaite, Greg Wilson, Zed Shaw.
Some ones that aren't on Vimeo that I remember really liking were by Dan Ingalls and Giles Bowkett, not sure if they were recorded or not.
Incredible. So many unique and well-executed ideas in one presentation. It's almost too much to take in at once.
With the iPad animation part in particular though, I got the same kind of feeling watching that as I do when I watch the original "mouse" videos on Youtube. Very exciting possibilities to say the least.
Every time Bret makes a new essay I feel like I've completely missed the point about what matters in technology. It's a strange mixture of frustration and inspiration. Amazing video.
I had a hard time getting the essay on time and interactivity, but this killer presentation really helped it sink in and dial the frustration to inspiration ratio.
http://worrydream.com/MagicInk/ http://worrydream.com/KillMath/ http://worrydream.com/InteractiveExplorationOfADynamicalSyst... http://worrydream.com/ScientificCommunicationAsSequentialArt... http://worrydream.com/DynamicPicturesMotivation/ http://worrydream.com/ExplorableExplanations/ http://worrydream.com/Tangle/