Bret Victor The Future of Programming

305K views · 13 years ago · talk · intermediate · evergreen

Bret Victor's talk looks at where programming has been and where it might go, staged as if it were given in 1973. He argues that the field keeps repeating its assumptions and that it should explore very different ways of programming.

HN sees it as a classic that opens up how programming could be more interactive and direct, and cites it in threads on no-code, Smalltalk and live programming.

“Bret Victor's, "The Future of Programming" is illuminating.”

28 comments from Hacker News

c
@crispyambulance2022 · in “Ethnographic research on Dynamicland”
> [...] More importantly, there's no way to automatically reflect the manipulations made to those alternate representations on the paper contained in the binders. This basically undoes everything the internet has given us, making technology much more elitist and harder to access. I think that "automatically reflecting the manipulations made to alternate representations" is exactly a core intention of DynamicLand. They're very much all about bringing computer interaction seamlessly into the intimate physical workspaces of humans. Admittedly, in the very few clips and info we've seen, this isn't particularly dramatic. On the surface it's sort of like an inverted augmented-reality experience where the computer asserts itself in physical space. Whereas in regular AR, we assert ourselves in cyberspace. The project of DynamicLand, IMHO, has a much larger scope than regular AR. Will it be successful? ¯\_(ツ)_/¯ I am glad, however, that at least someone is trying this. I do hope that Brett Victor resumes his amazing lectures. They were really inspiring (this one in particular is a classic: ▶ this video).
Strongly recommendsView on HN
a
@awongh2024 · in “Choose Boring Technology and LLMs”
I was more thinking about the blocked progress of true innovation in the way programming languages are made and used. This is the talk I referenced above: ▶ this video I agree with his main thesis which is that we can do better to improve on some of these literally 60 year old programming and programming tooling paradigms. I'm hoping that the paradigm improvement isn't to just paste over the entire endeavour with some AI agents that abstract away coding as we currently think about it.
RecommendsView on HN
y
@yesenadam2023 · in “Ask HN: Has anyone fully attempted Bret Victor's vision?”
For the people asking who is Bret Victor: When "What are your favourite tech talks of all time?" is asked on HN, he gets more mentions than anyone else, usually. Some of his talks: Inventing on Principle link The Future of Programming ▶ this video The Humane Representation of Thought link Media for Thinking the Unthinkable link Seeing Spaces link Drawing Dynamic Visualizations link link
RecommendsView on HN
s
@still_grokking2022 · in “Show HN: A small, weird and unpractical programming language”
I'm not sold on this pen & paper idea to be honest. It looks slow and cumbersome. It misses all the advantages of using a computer. How would for example code competition, context sensitive features, or refactoring work? How about editing features of a capable editor like this here: link It would be very hard, if even possible, to replicate such user experience with "pen & paper" (even if "pen and paper" would be digital). I think programming could be improved. But not by going back in time. Instead the "text" (code) should become even more interactive. I really like the ideas of e.g. Bret Victor in this regard: link ▶ this video Or the ideas behind something like Enso: link Or "just" interactive notebooks… Computers are so much more than pen & paper! --- "Liberating programming form monadic style" was only a pun on the parent post. :-) If you do FP (functional programming) in an advanced typed language you will likely end up with code written in monadic style, meaning that you wrap all (effectful) computation in some monads. In my opinion that's in the end not really much better than the usual imperative style—and that closes the circle to the original citation: "Can programming be liberated from the von Neumann style?" (which was the title of a quite important paper).
RecommendsView on HN
k
@kwatsonafter2022 · in “The Future of Programming Languages [video]”
Reposted from YT comments: Respectfully I think you're missing the point; the future is new kinds of programming paradigms emerging. Consider punch cards evolving into the Burroughs 5XXX evolving into compilers evolving into, "live systems" (Smalltalk, Erlang's BEAM) which laterally gives rise to REPL-style interaction which makes the previous "write a tome and let the computer read it and then let you know what it thinks" seems superfluous and antiquated compared to, "the computer is listening and will respond back instantaneously when it is talked to." It's worthwhile to think in those kinds of terms-- we can with historical precedent consider that whatever supersedes current human-computer interaction will probably be along similar lines. I think so far we've gotten to a kind of responsive Cartesian, List-evaluating (wink, wink) object which can respond to our commands and that's where modern L337bro from California coding comes from. I'm really saddened for everything we've done with phones that Erlang isn't somehow standard for developing high throughput systems. I digress. Larry Tesler and others were working on, "Actionable Programming" in the late 80's which I think is now referred to as, "Programming by Demonstration." There currently (prove me wrong here) a comprehensive system where-in the actual computation that takes place can be, "recorded" and, "played back" with arbitrary constraints applied to which (depending on constraints), "timeline" (consider branching web histories) the computer ends up, "deciding on." If memory serves the last time.I was at the Viewpoints website Alan Kay was working on something to do with ontologies. There definitely is a way forward. "Computer I want you to display to me a system of constraints. Based on this constraint what might be the possible behaviors of the system in the future; of all of these constraints which most fits the criteria. Return(Critera)" There's a demo by Bret Victor ("Inventing On Principle") where he actual demonstrates this kind of thing in real life along with other, "future programming" paradigm examples. Definitely worth looking at. ▶ this video
RecommendsView on HN
f
@filoeleven2021 · in “Ask HN: What do you think about the no-code movement?”
Bret Victor has ideas. ▶ this video There is a fundamental tension between “what computers understand how to do” and “the problems that humans are trying to solve with computers.” Every programming language lies somewhere between one of these two fixed points. The goal of many if not most programmers is to end up with a system that lets you express all of your domain-specific problems as clearly as possible, abstracting away the fiddly bits that you don’t care about. There’s a lot of stuff that has to exist in order to get to that level, and we neither agree about it nor know all of what it entails for any specific thing. So Domain Specific Languages (DSLs) are often the best that we can do, and they vary wildly in quality. Some DSLs lend themselves to being visually programmed. They tend to be rare and niche, and incredibly helpful to the people who can use them. Perhaps more is possible, but it requires a foundation to build upon that does not yet universally or even commonly exist, and may never exist.
RecommendsView on HN
m
@melling2021 · in “Pharo 9”
“Pharo is a … and immediate feedback.” The key that we should provide more often. Bret Victor has been discussing for over a decade. Can’t find them demo that i’m thinking of but here’s an introduction into Bret link ▶ this video His ideas go beyond “immediate feedback” …
RecommendsView on HN
t
@thangalin2021 · in “Why can't I write code inside my browser?”
Bret Victor's, "The Future of Programming" is illuminating. He walks through what "programming" means and how the concept of "programming" has shifted in little evolutionary leaps. ▶ this video "There can be a lot of resistance to new ways of working that require you to unlearn what you've already learned and think in new ways. ... And there can even be outright hostility." Programming Baduk used to involve expert systems. Now convolutional neural networks (CNNs) can hoist a computer to superhuman performance, even doing so without pre-programmed rules (see MuZero). We no longer "program" computers to play Go, chess, shogi, or even Atari games. Some people have difficulty keeping code structures in their mind's eye. Here's a conceptual development environment for navigating code visually, ending with a dual text editor: link Is that programming? What's the difference between _typing_ instructions into a computer to place a graphical user interface widget on a screen and _telling_ the computer you'd like to put a toroid on the screen? Computers can use CNNs to fill in knowledge gaps. Even though the computer wasn't told the colour, size, shading, material, or location of the toroid, it can still show us the ring. Is telling a holodeck that you'd like to replay a scene from a novel a form of programming? link Each evolutionary step in programming has given us more powerful ways to express ideas in ever terser forms. Few people code in binary anymore. Did Picard need to tell the computer where to put every chair, table, glass, and machine gun? What is programming?
RecommendsView on HN
j
@j-pb2020 · in “Have you ever asked yourself “how did research get done before LateX?””
PeerJ has actually quite a few publications, one of them is CS ;) link the dropdown on the top left allows you to switch between them. I think MathJax is certainly a step in the right direction, they even support rendering to MathML. But I agree that there is a certain lack there in terms of full semantic representations. MathJax is more accessible than TeX but it's still describing visual layout, instead of semantic meaning. Pushing HTML to arxiv is also a step into the right direction. I think the most important thing we can do is not be complacent with the state of the art. We need to go back to an age of computing where we didn't think we had it all figured out. We need to experiment, and not be afraid to take a step back in some aspects, like layout and kerning, in exchange for other advances like semantic representations and knowledge representation. I think bred victor has a great talk on this: ▶ this video I think we need to experiment with things like observablehq.com or nextjournal.com or the many other that are coming into existence.
RecommendsView on HN
v
@vanderZwan2018 · in “The problem with programming and how to fix it”
> How would that better environment look? Come on, what kind of question is that? If I knew how to improve it I wouldn't be chatting here with you, I would be doing something about it. Also, you should probably watch Bret Victor's videos, especially "The Future of Programming", if only to realize that we have been improving the programming environment since the days of punch cards, and are still in the process of doing so. ▶ this video
RecommendsView on HN
v
@veli_joza2018 · in “Programming Paradigms and Beyond [pdf]”
Good read. I feel the title should be "Teaching Programming Paradigms and Beyond" since the text assumes familiarity with complete CS landscape and comments on success of several teaching methods. I would recommend (also misleadingly titled) talk The Future of Programming by Bret Victor [1] which goes over some groundbreaking paradigms that have since become mostly forgotten. [1] ▶ this video
RecommendsView on HN
n
@namuol2018 · in “You Can’t Do Data Science in a GUI”
Yes, healthy skepticism is good, but just because code (i.e. text files) is often the most _powerful_ or _flexible_ tool, doesn't mean it's always the best tool. We (programmers) are notoriously bad at advancing the tools in our field. For a brief history of this, watch "The Future of Programming" talk by Bret Victor: ▶ this video
RecommendsView on HN