
"We Really Don't Know How to Compute!" - Gerald Sussman (2011)
About this video
Gerald Sussman's 2011 Strange Loop keynote argues we still do not know how to compute, comparing biological systems with how we program machines. It touches on propagators, constraint programming and robustness.
Why it appears in the archive
HN commenters recommend it as a mind-expanding talk on rethinking programming, and cite it in threads on propagators, constraints and brittleness.
AI-generated summary and labels from the source dataset; verify important details against the video. Source & credits.
From the Hacker News discussion
Not writing, but I have found all of Brett Victor's speeches to be incredibly inspiring on how I think about what I want to work on and where we're going. Inventing on Principle by Brett Victor: [LINK] Growing a Language by Guy Steele: [LINK] We Really Don't Know How to Compute! by Gerald Sussman: [VIDEO]
Read original comment ↗you might be interested in [VIDEO] "We Really Don't Know How to Compute!"- Gerald Sussman (2011) [1:04:18]
Read original comment ↗For some reason programming is not getting any easier, I can even make an argument its getting worse despite all the improved tooling and andragogy investments we have done. Programming is in some sort of local minimum and we keep going in circles. Few years ago I watched this talk by Gerald Sussman: "We really don't know how to compute" - [VIDEO] and it made me question my views on what I think programming is. I dont know if its because people are afraid to try new things, or there is no funding to try new things, we are kind of stuck. People thinking "don't reinvent the wheel" and for some reason think we have built a wheel (as Casey Muratori says: [LINK] ). We have a square at best. There are so many problems in the world, and a lot of them need robust and resilient programs to be solved, e.g. self cleaning public toilets or worm farm that you feed bio garbage and it produces protein flour. The challenge is exactly the same as it was 80 years ago, manage complexity in chaotic and emergent systems: chaos, complexity and entropy as the poet said. And to be honest, I think we have gotten worse at managing all of those, most bugs that we encounter now is like a murder mystery from Detective Conan and it requires Shinichi Kudo level of deductive reasoning to figure out what is going on. Programming will remain hard if you keep thinking it is just a translation problem from a "business requirement" to a "computer language".
Read original comment ↗I highly recommend Prof. Sussman talk at the Strange Loop conference 2011 [1]. It's not his inaugural lecture but it's pretty close where he talk about his research work with his former students. It's also paved the way to modern constraint programming based on logic and optimization which are the machine intelligence that's complementary to the conventional data driven and learning bases AI. [1] "We Really Don't Know How to Compute!" - Gerald Sussman - MIT (2011) [video]: [VIDEO]
Read original comment ↗Grandparent is onto something. You can't define correctness without a spec. And since most business-oriented software, which most of us work with, isn't made against a comprehensive spec, you can argue that anything falling outside it is either a bug or a feature. 'If your disk backup software corrupts backups' has behind it a clean definition that's (pretty) unambiguous and you don't care about, since it's already outsourced to some cloud solution. But 'User finds it easy to buy more stuff' does not. Also, mandatory Sussman reference [0], where he talks about correctness not being that important and gives Google as example, that just needs to be close enough and not disastrously incorrect + interesting stuff around engineers confusing brittleness with correctness. [0] [VIDEO]
Read original comment ↗I think he says that in every talk he gives. [VIDEO] , [LINK] , [LINK] , etc. There's a 2002 paper where he uses the term: [LINK]
Read original comment ↗This also reminds me of Gerry Sussman’s talk “We Really Don’t Know How to Compute!”: [VIDEO] Granted, the assumption he made is that computing power would grow increasingly cheap (which is basically the opposite of the point here), but I also wonder if techniques like those shown in that talk could be used effectively with a network of smaller, lower-power computers. (I mean, the talk does mention the use of small low-power computers specifically, but more in the context of e.g. sensor networks.)
Read original comment ↗Oh what a fun question! So, the first thing is, what's the essential difficulty versus the noise: Lisp has two features which enable the evaluator to work. The first is quotation, which means that you can put a little apostrophe before some code and then it saves that code as a data structure, rather than implicitly evaluating it. The second goes by the overfancy name “homoiconicity”, that data structure is actually just singly linked list consumed by “car” (“first”) and “cdr” (“rest”) operations. You can focus on understanding those two aspects pretty quickly, and then there are many tutorials about building your own Lisp that will get you there in an afternoon, if you'd like. Or, you can take the royal road to this expression, in all of its cheesy 1980s glory: [LINK] It's lecture 7A where this specific program gets explicitly dissected by Sussman, wearing a fez. If he seems familiar, you might have watched Strange Loop 2011’s “We Really Don't Know How To Compute”, [VIDEO]
Read original comment ↗