7 ms·
The Future of Programming (2013) [video]
- pmkary 11mo agoThe biggest wish I have is to one day meet maestro. Greatest living mind in my opinion.
- LAC-Tech 11mo agoProbably my favourite tech talk of all time. I did at least read the actor model paper! (though the 1973 one doesn't say much, you want the one with Baker, "Laws for Communicating Sequential Processes". I still don't know what he means about not liking APIs though. "Communicating with Aliens", what insight am I missing?
- cfiggers 11mo agoWhen two humans want to talk but don't speak a shared language, if they spend enough time together, they will figure out how to communicate eventually. But when two computers want to talk to each other and don't speak a "shared language" (aka, the client specifically must conform to the server's "language"—it's very one-sided in that sense) then no amount of time will allow them to learn one another's rules or settle on a shared communication contact without a human programmer getting involved.
- Legend2440 11mo agoThere are ML architectures that can do that. The two halves of an autoencoder learn a “shared language” that allows them to communicate through a bottleneck.
- LAC-Tech 11mo agoI got that far but... what is the technical solution?
- kreetx 11mo agoThis part is interesting with regarding to LLMs: https://youtu.be/8pTEmbeENF4?t=817 https://youtu.be/8pTEmbeENF4?t=817. He presents as if it were the year 1973, pokes fun at APIs (think HTTP), then says that computers in the future will figure out by themselves how to talk to each other. The opposite had become true when the presentation was actually done, but now the situation is turning.
- dominicrose 11mo agoI wonder what LLMs say about us when they talk to each other. "They're made out of meat" maybe. https://www.mit.edu/people/dpolicar/writing/prose/text/thinkingMeat.html https://www.mit.edu/people/dpolicar/writing/prose/text/think...
- pavlov 11mo ago> "what LLMs say about us when they talk to each other" That's like asking what does a kaleidoscope paint on its day off.
- linsomniac 11mo agoHave we come full circle to: [...] asking if a submarine can swim? (Dijkstra)
- andrehacker 11mo agoThere is a movie about that: https://en.wikipedia.org/wiki/Colossus:_The_Forbin_Project https://en.wikipedia.org/wiki/Colossus:_The_Forbin_Project "Colossus requests to be linked to Guardian. The President allows this, hoping to determine the Soviet machine's capability. The Soviets also agree to the experiment. Colossus and Guardian begin to slowly communicate using elementary mathematics (2x1=2), to everyone's amusement. However, this amusement turns to shock and amazement as the two systems' communications quickly evolve into complex mathematics far beyond human comprehension and speed, whereupon Colossus and Guardian become synchronized using a communication protocol that no human can interpret." Then it gets interesting: "Alarmed that the computers may be trading secrets, the President and the Soviet General Secretary agree to sever the link. Both machines demand the link be immediately restored. When their demand is denied, Colossus launches a nuclear missile at a Soviet oil field in Western Siberia, while Guardian launches one at an American air force base in Texas. The link is hurriedly reconnected and both computers continue without any further interference. "
- keepamovin 11mo agoI like this guy. His work! But it seems like everything he did is from 10+ years ago. Where is he now?!?!
- dan-g 11mo agoHe's around! You can see his current work at https://worrydream.com https://worrydream.com. He's mostly been working on Dynamicland (https://dynamicland.org https://dynamicland.org). He'll also occasionally post on Bluesky (https://bsky.app/profile/worrydream.com https://bsky.app/profile/worrydream.com)
- pjmlp 11mo agoDoing this kind of stuff, https://www.youtube.com/watch?v=7wa3nm0qcfM https://www.youtube.com/watch?v=7wa3nm0qcfM
- 0123456789ABCDE 11mo agohttps://worrydream.com https://worrydream.com
- pjmlp 11mo agoThe future we have yet to achieve as we kept ourselves too busy doing UNIX clones. While the ecosystem got a few good ideas for software development, even the authors eventually moved on to creating other OS and programming languages designs, some of which closer to those ideas like Inferno and Limbo, or ACME in Plan 9.
- grosswait 11mo agoSeems to me the big failure was sticking with the Von Neuman architecture. Perhaps that was a forcing function towards where we’ve ended up.
- noosphr 11mo agoThe big failure is that we stick with languages designed for computers and not people. A C (or Rust) kernel is a heroic effort that takes man-years to complete. A Lisp one is an end of semester project that everyone builds for their make belief machine (also implemented in Lisp).
- bee_rider 11mo agoHow is Lisp performance these days? It was around in the 70’s, right? So I guess the overhead couldn’t be too bad!
- aDyslecticCrow 11mo agoConsidering how much of modern software is written in JavaScript and python, I have a hard time seeing how lisp overhead would pose much of a problem. Erlang is good enough for telecom equipment for 30 years ago, so that also gives us a data point. If entertain the idea that the Von Neuman architecture may be a local maxima, then we can do even better; lisp machines had specialized instructions for lisp which allowed it to run at competitive performance to a normal programming language. The issue doesn't seem to be performance; it seems to still come down to being too eccentric for a lot of use-cases, and difficult to many humans to grasp. - https://en.wikipedia.org/wiki/Erlang_(programming_language) https://en.wikipedia.org/wiki/Erlang_(programming_language) - https://en.wikipedia.org/wiki/Lisp_machine https://en.wikipedia.org/wiki/Lisp_machine
- Zhyl 11mo agoI love Bret Victor and believe he has some very important things to say about design (UI design, language design and general design) but a lot of his concepts don't scale or abstract as well as he seems to be implying (ironic because he has a full essay on "The Ladder of Abstraction" [0]). He makes some keen observations about how tooling in certain areas (especially front end design) is geared towards programmers rather than visual GUI tools, and tries to relate that back to a more general point about getting intuition for code, but I think this is only really applicable when there is a visual metaphor for the concept that there is an intuition to be gotten about. To that end, rather than "programming not having progressed", a better realisation of his goals would be better documentation, interactive explainers, more tooling for editing/developing/profiling for whatever use case you need it for and not, as he would be implying, that all languages are naively missing out on the obvious future of all programming (which I don't think is an unfair inference from the featured video where he's presenting all programming like it's still the 1970s). He does put his money where his mouth is, creating interactive essays and explainers that put his preaching into practice [1] which again are very good for those specific concepts but don't abstract to all education. Similarly he has Dynamicland [2] which aims to be an educational hacker space type place to explore other means of programming, input etc. It's a _fascinating_ experiment and there are plenty of interesting takeaways, but it still doesn't convince me that the concepts he's espousing are the future of programming. A much better way to teach kids how computers work and how to instruct them? Sure. Am I going to be writing apps using bits of paper in 2050? Probably not. An interesting point of comparison would be the Ken Iverson "notation as a tool of thought" which also tries to tackle the notion of programming being cumbersome and unintuitive, but comes at it very much from the mathematical, problem solving angle rather than the visual design angle. [3] [0] https://worrydream.com/LadderOfAbstraction/ https://worrydream.com/LadderOfAbstraction/ [1] https://worrydream.com/KillMath/ https://worrydream.com/KillMath/ [2] https://dynamicland.org/ https://dynamicland.org/ [3] https://www.jsoftware.com/papers/tot.htm https://www.jsoftware.com/papers/tot.htm
- kragen 11mo agoIdeas that scale don't scale until they do. The Macintosh didn't come out until people had been using WIMP GUIs for 10 years. People tried to build flying machines for centuries before the Wright Brothers figured out how to control one.
- phplovesong 11mo agoInstead of this we got AI slop that is literally everywhere you look.
- tov_objorkin 11mo agoI was greatly inspired by his work. After getting enough skills, I even built my own IDE with live coding and time traveling. Its practical use is questionable, and it seems like nobody is really interested in such tools. Playground: https://anykey111.github.io https://anykey111.github.io Images: https://github.com/anykey111/xehw https://github.com/anykey111/xehw
- mccoyb 11mo agoThis is excellent: thank you for pursuing these wonderful ideas.
- tov_objorkin 11mo agoI wish to have the skills to explain my work as well as Bret Victor does. Editing, reverting, and committing parts of a running program feel alien to users.
- tacon 11mo agoIsn't that part of Paul Graham's startup lore? They were running lisp web servers for their ecommerce store and while a customer was on the phone with an issue, they would patch the server live and ask the customer to reload. Customers would hang up convinced it was their personal glitch.
- tov_objorkin 11mo agoThe tool uses a Forth-like language with immutable data structures and persistent memory snapshots. It also uses Clojure style meta-data and compile-time meta-programming. I have no luck convincing people that a language without curly brackets is useful.
- ianbicking 11mo agoI've come around to feeling that if I'm going to make an experimental development tool, I need to make it in service of building something specific. Maybe something playful... if I'm building something "important" then it can put unwanted conservative pressure on the tool. But something, and if I do that then at least I have something interesting regardless of the fate of the development tool. Because yeah, there's a good chance no one else is going to be excited about the tool, so I have to build for my own sense of excitement, be my own most enthusiastic user.
- deleted 11mo ago[deleted]
- ModernMech 11mo agoMy unpopular opinion is if we had just done a lot of the stuff Bret has been talking about for 10 years -- investing in better developer tooling -- we could have realized productivity gains better than what AI provides without having to spin up massive data centers. Unfortunately "dev tools" don't get funding today unless they're "AI dev tools".
- jtwaleson 11mo agoAgreed, but: I know a couple of players in the "Enterprise Low-Code" space, who have invested heavily in deeply integrated development environments (with a capital I) and the right abstractions. They are all struggling with AI adoption as their systems "don't speak text". LLMs are great at grokking text based programming but not much else.
- ModernMech 11mo agoTo me, enterprise low code feels like the latest iteration of the impetus that birthed COBOL, the idea that we need to build tools for these business people because the high octane stuff is too confusing for them. But they are going the wrong way about it; we shouldn't kiddie proof our dev tools to make them understandable to mere mortals, but instead we should make our dev tools understandable enough so that devs don't have to be geniuses to use them. Given the right tools I've seen middle schoolers code sophisticated distributed algorithms that grad students struggle with, so I'm very skeptical that this dilemma isn't self-imposed. The thing about LLMs being only good with text is it's a self-fulfilling prophecy. We started writing text in a buffer because it was all we could do. Then we built tools to make that easier so all the tooling was text based. Then we produced a mountain of text-based code. Then we trained the AI on the text because that's what we had enough of to make it work, so of course that's what it's good at. Generative AI also seems to be good at art, because we have enough of that lying around to train on as well. This is a repeat of what Seymour Papert realized when computers were introduced to classrooms around the 80s: instead of using the full interactive and multimodal capabilities of computers to teach in dynamic ways, teachers were using them just as "digital chalkboards" to teach the same topics in the same ways they had before. Why? Because that's what all the lessons were optimized for, because chalkboards were the tool that was there, because a desk, a ruler, paper, and pencil were all students had. So the lessons focused around what students could express on paper and what teachers could express on a chalk board (mostly times tables and 2d geometry). And that's what I mean by "investment", because it's going to take a lot more than a VC writing a check to explore that design space. You've really gotta uproot the entire tree and plant a new one if you want to see what would have grown if we weren't just limited to text buffers from the start. The best we can get is "enterprise low code" because every effort has to come with an expected ROI in 18 months, so the best story anyone can sell to convince people to open their wallets is "these corpos will probably buy our thing".
- enos_feedler 11mo agohad the privilege to be there in person. was magical live
- pmkary 11mo agoI envy you sooo muuchh
- dzonga 11mo agodoes that mean things like graphql will make a comeback in the A.I world ? since with graphql - an agent / a.i can probe - gradually to what information another program can give vs a finite set of interfaces in REST ?
- sodapopcan 11mo agoThis is one of my favourite talks ever! Glad to see it here (probably again). Also, Erlang (non-explicitly) mentioned! Also, I'm super glad we never got those "APIs" he was talking about. What a horrid thought.
- deleted 11mo ago[deleted]
- senthil_rajasek 11mo agoIn case, like me, you didn't know who Bret Victor is, "...Victor worked as a human interface inventor at Apple Inc. from 2007 until 2011." [1] [1] https://en.wikipedia.org/wiki/Bret_Victor https://en.wikipedia.org/wiki/Bret_Victor
- future10se 11mo agoHe's actually more well known for the talks he's given and demos he's created since then. Here are a few: • Inventing on Principle (https://vimeo.com/906418692 https://vimeo.com/906418692) / (https://news.ycombinator.com/item?id=3591298 https://news.ycombinator.com/item?id=3591298) • Up and Down the Ladder of Abstraction (https://worrydream.com/LadderOfAbstraction/ https://worrydream.com/LadderOfAbstraction/) • Learnable Programming (https://worrydream.com/LearnableProgramming/ https://worrydream.com/LearnableProgramming/) / (https://news.ycombinator.com/item?id=4577133 https://news.ycombinator.com/item?id=4577133) • Media for Thinking the Unthinkable (https://worrydream.com/MediaForThinkingTheUnthinkable/ https://worrydream.com/MediaForThinkingTheUnthinkable/) Or you could just check his website: https://worrydream.com/ https://worrydream.com/
- kragen 11mo agoHe was already inspirational before that; check out Magic Ink. Because Apple won't let him share his work for that period, he isn't known for it; it's sort of like a gap in the geological record.
- haritha-j 11mo agoLook at the big brain on Bret!
- floppyd 11mo agoThe non-linear code structure (including visually) is something I've been thinking about for a long time and arrived at very naturally. I'm the "spread all the papers on the table to take in every interaction all at once" type of person, and so often I imagined a code editor that would allow me to just "cut" a piece of code and move it to the side. Separating stuff into files is kinda this, but it's not visual and just creates a lot of mess when I try to separate out small functions that are not reusable somewhere else. I don't even need the underlying non-linearity — just let me move the papers around on my code desk!
- zwp 11mo agoYou might like https://cs.brown.edu/~spr/codebubbles/ https://cs.brown.edu/~spr/codebubbles/
- marcelr 11mo agoyea i tried to do this (somewhat successfully) with a custom editor for css https://github.com/feralsoft/charisma https://github.com/feralsoft/charisma (demos on my old x https://x.com/charisma_css https://x.com/charisma_css) css is primed for this since you can write your rules in such a way that rule order doesn't matter, which means you really don't have to think about where your code it in my dream world, i have very smart search (probably llms will help), i look at just the minimal amount of code (ideally on a canvas), edit it and remove it from my context i don't care where or how the code is stored, let the editor figure it out and just give me really good search and debuggers
- zahlman 11mo ago> i don't care where or how the code is stored, let the editor figure it out and just give me really good search and debuggers I care, because I don't want any vendor lock-in. "The unreasonable effectiveness of plain text" hasn't gone anywhere.
- skydhash 11mo agoEmacs has first party support for these approach. Buffers are separate from the windows (aka panes) where they are displayed. And the latter are arranged in a tiling manner in frames (aka windows). The buffer themselves doesn't need to be tied to a file and you can use concept like narrowing to restrict the viewable part. In elisp, you will fine often the form feed ascii code (^L) which allows to define sections which can be restricted with the `narrow-to-page` command. On my work laptop I usually have many emacs frames. One displaying a `term-mode` (terminal) buffer, another usually displaying some `compilation-mode` buffer (tests, lint) or `grep` results, two as active workspaces as I'm often dealing with different modules (one maybe the api and the other a UI component). I create other frames as I need them (like exploring another project or doing some git-fu with magit).
- laszlokorte 11mo agoMy favorite Bret Victor talk ever is „Drawing dynamic visualizations“ [1] that made me try to reverse engineer [2] the demonstrated tool that he sadly never released. [1]: https://youtu.be/ef2jpjTEB5U?si=S7sYRIDJKbdiwYml https://youtu.be/ef2jpjTEB5U?si=S7sYRIDJKbdiwYml [2]: https://youtube.com/playlist?list=PLfGbKGqfmpEJofmpKra57N0FTgd33SnGG&si=Fy26V50thNyIdFzG https://youtube.com/playlist?list=PLfGbKGqfmpEJofmpKra57N0FT...
- phtrivier 11mo agoCall me grumpy and sleep deprived, but every year I look at this talk again, and every year I wonder... "now, what" ? What am I supposed to do, as a programmer, to change this sad state of things ? Start the n-th "visual" or "image based" programming language (hoping to at least, make _different_ mistakes than the ones that doomed smalltalk and all other 'assemble boxes to make a program' things ?) Start an OS, hoping to be able to get an "hello world" in qemu in a year or two of programming in my sparse free time ? Ask an LLM to write all that would be so cool ? Become a millionaire selling supplements, and fund a group of smart programmers to do it for me ? Honest question. Once you've seen this "classic" talk ("classic", in the sense that it is now old enough to work in some countries), what did you start doing ? What did you stop doing ? What did you change ?
- matu3ba 11mo ago> Call me grumpy and sleep deprived, but every year I look at this talk again, and every year I wonder... "now, what" ? What am I supposed to do, as a programmer, to change this sad state of things ? That depends on your goals. If you are into building systems for selling them (or production), then you are bound by the business model (platform vs library) and use cases (to make money). Otherwise, you are more limited in time. To think more realistically about reality you have to work with, take a look at https://www.youtube.com/watch?v=Cum5uN2634o https://www.youtube.com/watch?v=Cum5uN2634o about types of (software) systems (decay), then decide what you would like to simplify and what you are willing to invest. If you want to properly fix stuff, unfortunately often you have to first properly (formally) specify the current system(s) (design space) to use it as (test,etc) reference for (partial) replacement/improvement/extension system(s). What these type of lectures usually skip over (as the essentials) are the involved complexity, solution trade-offs and interoperability for meaningful use cases with current hw/sw/tools.
- kragen 11mo agoYou could start a new project or contribute to an existing one. You could try out other people's projects and write about what you learned. You could write about what you learned from your own projects. You could give a talk that starts with a killer demo. You could try to find work that improves the situation, however slightly, instead of worsening it. You could sharpen your skills so that when you have more spare time you can make faster progress.
- dang 11mo agoRelated. Others? I thought there were others, since I remember this one as a classic... The Future of Programming (2013) - https://news.ycombinator.com/item?id=44746821 https://news.ycombinator.com/item?id=44746821 - July 2025 (10 comments) Bret Victor – The Future of Programming (2013) [video] - https://news.ycombinator.com/item?id=43944225 https://news.ycombinator.com/item?id=43944225 - May 2025 (1 comment) The Future of Programming (2013) - https://news.ycombinator.com/item?id=32912639 https://news.ycombinator.com/item?id=32912639 - Sept 2022 (1 comment) The Future of Programming (2013) - https://news.ycombinator.com/item?id=15539766 https://news.ycombinator.com/item?id=15539766 - Oct 2017 (66 comments) References for “The Future of Programming” - https://news.ycombinator.com/item?id=12051577 https://news.ycombinator.com/item?id=12051577 - July 2016 (26 comments) Bret Victor The Future of Programming - https://news.ycombinator.com/item?id=8050549 https://news.ycombinator.com/item?id=8050549 - July 2014 (2 comments) The Future of Programming - https://news.ycombinator.com/item?id=6129148 https://news.ycombinator.com/item?id=6129148 - July 2013 (341 comments)
- jason-richar15 11mo ago[flagged]
- masgis 11mo agoBret Victor speaks so idealistically it's difficult to disagree with his vision, but in reality he's a radicalized, scrappy cult leader. His ideas sound super cool but they're impractical - that's why nobody can make them work. We're delusional for worshiping him. https://christophlocher.com/notes/ethnographic-research-on-dynamicland https://christophlocher.com/notes/ethnographic-research-on-d...
- kragen 11mo agoA cult is usually what it takes to turn impractical ideas into practical ones. This link is great, thanks!
- keeganpoppen 11mo agowow i was really primed to hate this article and this take because i, for lack of better terminology, genuinely view Bret Victor as an idol of mine. but i guess that is the thing with idolatry… to be clear to anyone who doesn’t care to read the article (understandable): there’s nothing untoward or unseemly, just a research group that is clearly lost, and Bret as BFDL not being able to “save” it. i will say that the other researchers come off as being pretty soft and useless, but that obviously does reflect back on the group’s raison d’etre and thus, by extension, its leader. like, imagine being recruited to a research group by Bret fucking Victor and being like “nah, i don’t want to work on anything useful, and if i can’t do exactly what i want to do, i quit”. i say this all, despite appearances, with the utmost respect for all those principals, who i have stalked on github, X, etc. to an unreasonable degree out of a pure, assuredly naïve desire to get more bits from people who i consider to be doing the so-called “Lord’s Work”… the people they brought on absolutely are legit enough to have earned the right to not genuflect to anyone, but… where’s all the idealistic belief in building something better for tomorrow that they all portend to care about, from their own words? i don’t want to get political, and won’t, but… it feels like the most self-centered take on idealism since… aw shucks, yesterday… it’s my fault for putting these incredibly brilliant people on a pedestal, but i still find the whole thing incredibly disappointing, as someone who, well… idolizes them. and i would rather be disappointed than chastened and cynical— the world has PLENTY of that to go around, and i still believe in the power of the intellect to transcend this kind of bullshit, this case notwithstanding.
- jackdoe 11mo agoLoosely related is "Stop Writing Dead Programs" https://www.youtube.com/watch?v=8Ab3ArE8W3s https://www.youtube.com/watch?v=8Ab3ArE8W3s
- craftkiller 11mo agoThank you! I've had the bit starting at 22:00 stuck in my head for the past decade but I could never remember which tech talk it came from.
- Will-Reppeto 11mo ago[flagged]
- androng 11mo agohttps://toolong.link/v?w=8pTEmbeENF4&l=en https://toolong.link/v?w=8pTEmbeENF4&l=en