Playful explorations of the rich past and exciting future that we're all building with our silly little computers. Hosted by Jimmy Miller and Ivan Reese.
Alexander Repenning created AgentSheets, an environment to help kids develop computational thinking skills. It wrapped an unusual computational model with an even more unusual user interface. The result was divisive. It inspired so many other projects, whilst being rejected at every turn and failing to catch on the way Scratch later did. So in 2017, Repenning published this obit of a paper, Moving Beyond Syntax: Lessons from 20 Years of Blocks Programming in AgentSheets, which covers his findings over the years as AgentSheets evolved and transformed, and gives perspective on block-based programming, programming-by-example, agents / rule / rewrite systems, automata, and more.
This is probably the most "normal" episode we've done in a while — we stay close to the text and un-clam many a thought-tickling pearl. I'm saying that sincerely now to throw you off our scent the next time we get totally lost in the weeds. I hear a clock ticking.
Links
$ Do you want to move beyond syntax? Frustrated by a lack of syntactic, semantic, or pragmatic support? Join our Patreon! Choose the tier that best reflects your personal vision of the future of coding. Get (frequently unhinged) monthly bonus content. Most of all: let us know that you enjoy this thing we do, and help us keep doing it for years to come.
Music featured in this episode:
! Send us email, share your ideas in the Slack, and catch us at these normal places:
See you in the future!
https://futureofcoding.org/episodes/073
Support us on Patreon: https://www.patreon.com/futureofcoding
See omnystudio.com/listener for privacy information.
If you're anything like Ivan (oof, sorry), you've heard of Pygmalion but never caught more than the gist. Some sort of project from the early 70s, similar to Sketchpad or Smalltalk or something, yet another promising prototype from the early history of our field that failed to take the world by storm. Our stock-in-trade on this show.
But you've probably heard of Programming by Demonstration. And you've certainly heard of icons — you know, those little pictures that have become indelibly part of computing as we know it. Pygmalion is the originator of these concepts… and more!
The best introduction to Pygmalion is Mariano Guerra's No-code History: Pygmalion, which includes a clearly articulated summary of the big ideas, motivation, and design, with a video demonstration of the programming interface, key terminology, and links.
The most introduction to Pygmalion — or Pig Million, The Millionth Pig, as it'll surely come to be known — is the subject of today's episode: the original paper by David Canfield Smith.
Links
$ We don't run ads on this show anymore. Sometimes Ivan makes a fake ad for a nonsense product like CarrotGrid or Hest, but those don't pay for the dirt & vapor we grow them in. But what if they could?
Gonna just get this one out of the way: Quotation — and I quote, "A crucial semantic distinction between direct and indirect speech is that direct speech purports to report the exact words that were said or written EXACTLY AS THEY WERE SAID OR WRITTEN, LU, whereas indirect speech is a representation of speech in one's own words WHICH IS ALSO TOTALLY FINE, BUT JUST BE COOL ABOUT IT HEY?"
Shout out to Brian Hempel who sent us (among other treats) this concise summary of Pig Million from the seminal book Watch What I Do: Programming by Demonstration.
Recent FoC Patreon bonus episodes were about the game Baba is You and, on our first ever video episode, the design of a visual representation for machine code.
Lenna, a sexist test image that was and to some extent still is widely used in computer graphics.
Lu: Biscuit
Jimmy: Biscuit
Ivan: Limp Bizkit
Aaron Sloman's INTERACTIONS BETWEEN PHILOSOPHY AND ARTIFICIAL INTELLIGENCE: The Role of Intuition and Non-Logical Reasoning in Intelligence
Ivan: Platonism
Jimmy: Neoplatonism
Lu: Neuplatonism
I would never Derrida
Lu: Conlang
Ivan: Conlon Nancarrow, beloved (by Ivan, at least) composer of music for the Player Piano. Here's a baby-faced Adam Neely with the scoop if you're new to Nancarrow. Welcome.
Jimmy: Conway Twitty
For the video demonstrating the programming model, check Mariano's post
Lu's project CellPond, and their SPLASH talk
Marcel Goethals makes a lot of cool weird stuff and is a choice follow.
Why does it say "Put all the metal back in the ground" at the bottom of the show notes?
Music featured in this episode:
! Send us email, share your ideas in the Slack, and catch us at these normal places:
See you in the future!
https://futureofcoding.org/episodes/072
Support us on Patreon: https://www.patreon.com/futureofcoding
See omnystudio.com/listener for privacy information.
Inventing on Principle
Stop Drawing Dead Fish
The Future of Programming
Yes, all three of them in one episode. Phew!
Links
$ patreon.com/futureofcoding — Lu and Jimmy recorded an episode about Hest without telling me, and by total coincidence released it on my birthday. Those jerks… make me so happy.
Put all metal back into the ground.
Music featured in this episode:
! Send us email, share your ideas in the Slack, and catch us at these normal places:
See you in the future!
https://futureofcoding.org/episodes/71
Support us on Patreon: https://www.patreon.com/futureofcoding
See omnystudio.com/listener for privacy information.
Dave Ackley's paper Beyond Efficiency is three pages long. With just these three pages, he mounts a compelling argument against the conventional way we engineer software. Instead of inflexibly insisting upon correctness, maybe allow a lil slop? Instead of chasing peak performance with cache and clever tricks, maybe measure many times before you cut. So in this episode, we're putting every CEO in the guillotine… (oh, that stands for "correctness and efficiency only", don't put us on a list)… and considering when, where, and how to do the robust thing.
Links
$ patreon.com/futureofcoding — The most recent bonus episode is a discussion with Stefan Lesser about new "laws of physics" we can invent inside the computer.
Don't destroy the earth, then make sure your thing can't be destroyed, then don't destroy your data, and finally, do your damn job, AAAAAAAAAAAAAAAAAAAAAAAAAAA.
Music featured in this episode:
No more jokes! Find us at these normal places:
Send us email, share your ideas in our Slack, and support the show on Patreon. Yes, do all three please.
http://futureofcoding.org/episodes/70
Support us on Patreon: https://www.patreon.com/futureofcoding
See omnystudio.com/listener for privacy information.
In the spirit of clearly communicating what you're signing up for, this podcast episode is nearly three hours long, and among other things it contains a discussion of a paper by author Mary Shaw titled Myths & Mythconceptions which takes as an organizing principle a collection of myths that are widely believed by programmers, largely unacknowledged, which shape our views on the nature of programming as an activity and the needs of programmers as people and the sort of work that we do as a sort of work, and where by acknowledging these myths the three of us (Mary Shaw primarily, and by extension Jimmy and I, those three people, that's it, no other people appear on this podcast) are able to more vividly grip the image of programming with our mind's eye (or somesuch) and conceive of a different formulation for programming, and in addition to these myths this paper also incudes a number of excellent lists that I take great pleasure in reading, beyond which I should also note that the paper does a job of explaining itself and that hopefully you'll find I've done a similar job, that's the spirit, please enjoy.
Links
$ patreon.com/futureofcoding — I've recently changed it so that there's only 1 instance of the INTERCAL tier available, so if you're interested in those perks you'd better hop on it quick before nobody else does!
Nobody remarked on these silly links last time, so this time I'm drawing more attention to them:
https://futureofcoding.org/episodes/069
Support us on Patreon: https://www.patreon.com/futureofcoding
See omnystudio.com/listener for privacy information.
The subject of this episode's paper — Propositions as Types by Philip Wadler — is one of those grand ideas that makes you want to go stargazing. To stare out into space and just disassociate from your body and become one with the heavens. Everything — life, space, time, existence — all of it is a joke! A cosmic ribbing delivered by the laws of the universe or some higher power or, perhaps, higher order. Humanity waited two thousand years, from the time of the ancient Greeks through until the 1930s, for a means to answer questions of calculability, when three suddenly arrived all at once:
Then it was discovered that these three models of computation were, in fact, perfectly equivalent. That any statement made in one could be made in the others. A striking coincidence, sure, but not without precedent. But then it was quietly determined (in 1934, again in 1969, and finally published in 1980) that computation itself is in a direct correspondence with logic. That every proposition in a given logic corresponds with a type in a given programming language, every proof corresponds with a program, and the simplification of the proof corresponds with the evaluation of the program.
The implications boggle the mind. How could this be so? Well, how could it be any other way? Why did it take so long to discover? What other discoveries like this are perched on the precipice of revelation?
Philip Wadler is here to walk us through this bit of history, suggest answers to some of these questions, and point us in a direction to search for more.
And we are here, dear listener, to level with you that a lot of this stuff is miserably hard to approach, presented with the symbols and language of formal logic that is so often inscrutable to outsiders. By walking you through Wadler's paper (and the much more approachable Strange Loop talk), and tying it in with the cultural context of modern functional programming, we hope you'll gain an appreciation for this remarkable, divine pun that sits beneath all of computation.
Links
=> patreon.com/futureofcoding — but only if you back the Visual Programming tier!! I'm warning you!
Nobody noticed that these links were silly last time, so this time I'm drawing more attention to it:
This link is legit:
https://futureofcoding.org/episodes/068
Support us on Patreon: https://www.patreon.com/futureofcoding
See omnystudio.com/listener for privacy information.
Go To Statement Considered Harmful is a solid classic entry in the X Considered Harmful metafiction genre, authored by renowned computer scientist and idiosyncratic grump, Edsger Wybe Dijkstra. Surprisingly (given the impact it's had) this is a minuscule speck of a paper, lasting only 1-ish pages, and it even digresses several times from the main point. Fear not! Jimmy and I spend the entirety of these two podcast hours thoroughly analyzing the paper, wringing every last drop of insight from it, speaking directly to how programming ought to be reimagined from the molten venture capital core on up. Yes indeed, this is another episode in the fine tradition of Future of Coding where we stay faithfully close to the text, we leave the second-order implications alone, and there's nothing more than that. Nothing portended, nothing changed.
Links
Music featured in this episode:
Get in touch, ask questions, don't ask questions:
https://futureofcoding.org/episodes/067
Support us on Patreon: https://www.patreon.com/futureofcoding
See omnystudio.com/listener for privacy information.
This community is a big tent. We welcome folks from all backgrounds, and all levels of experience with computers. Heck, on our last episode, we celebrated an article written by someone who is, rounding down, a lawyer! A constant question I ponder is: what's the best way to introduce someone to the world of FoC? If someone is a workaday programmer, or a non-programmer, what can we share with them to help them understand our area of interest?
A personal favourite is the New Media Reader, but it's long and dense. An obvious crowd-pleaser is Inventing on Principle.
Bonnie Nardi's A Small Matter of Programming deserves a place on the list, especially if the reader is already an avid programmer who doesn't yet understand the point of end-user programming. They might ask, "Why should typical computer users bother learning to program?" Well, that's the wrong question! Instead, we should start broader. Why do we use computers? What do we use them to do? What happens when they don't do what we want? Who controls what they do? Will this ever change? What change do we want? Nardi challenges us to explore these questions, and gives the reader a gentle but definitive push in a positive direction.
Next time, we're… considered harmful?
#### $
We have launched a Patreon!
If, with the warmth in your heart and the wind in your wallet, you so choose to support this show then please know that we are tremendously grateful.
Producing this show takes a minor mountain of effort, and while the countless throngs of adoring fair-weather fans will surely arrive eventually, the small kilo-cadre of diehard listeners we've accrued so far makes each new episode a true joy to share. Through thick and thin (mostly thin since the sponsorship landscape turned barren) we're going to keep doing our darnedest to make something thought-provoking with an independent spirit. If that tickles you pink, throw some wood in our fireplace! (Yes, Ivan is writing this, how can you tell?)
Also, it doesn't hurt that the 2nd bonus episode — "Inherently Spatial" — is one of the best episodes of the show yet. It defrags so hard; you'll love it.
#### Init
#### Main
One meaning of "end-user programming" is about allowing people to build their own software. Another is about modifying existing software, and here are two interesting links related to this second meaning:
sprout.place is a lovely website where you decorate a little virtual space together with some remote friends. It's like a MySpace page mashed-up with a Zoom hang, but better.
Geoffrey Litt is a researcher who has tackled both meanings of EUP, but his work on the second meaning is especially interesting. For instance: he worked on Riffle, which explored the consequences of putting the full state of an app inside a reactive database, which is especially interesting if you consider what can be done if this database is available to, rather than hidden from, the end user.
To the best of our recollection, Jonathan Edwards has advocated for "end-programmer programming" as a helpful step toward end-user programming.
Get in touch, ask us questions, please no more mp3s ahh I can still hear the bones yuck:
https://futureofcoding.org/episodes/066
Support us on Patreon: https://www.patreon.com/futureofcoding
See omnystudio.com/listener for privacy information.
The execution of code, by its very nature, creates the conditions of a "strong legalism" in which you must unquestioningly obey laws produced without your say, invisibly, with no chance for appeal. This is a wild idea; today's essay is packed with them. In drawing parallels between law and computing, it gives us a new skepticism about software and the effect it has on the world. It's also full of challenges and benchmarks and ideas for ways that code can be reimagined. The conclusion of the essay is flush with inspiration, and the references are stellar. So while it might not look it at first, this is one of the most powerful works of FoC we've read: Interpreting the Rule(s) of Code: Performance, Performativity, and Production by Laurence Diver, 2001.
Next episode, we're having an open-ended discussion about end-user programming. The reading is Bonnie Nardi's 1993 classic, A Small Matter of Programming, with the referenced articles from the 1991 Scientific American special issue Communications, Computers and Networks as extra background.
Links
Get in touch, ask us questions, DON'T send us the sound of your knuckles cracking:
https://futureofcoding.org/episodes/065
Support us on Patreon: https://www.patreon.com/futureofcoding
See omnystudio.com/listener for privacy information.
This is a normal episode of a podcast called Future of Coding. We talk about INTERCAL, a real tool for computer programming. [Do I need to say more? Will this sell it? Most people won’t have heard of INTERCAL, but I think the fake out “normal” is enough to draw their attention. Also, I find “computer programming” funny. Not sure why I put that in quotes.]
Links [at least, the ones I remembered to jot down]
The final Strange Loop is coming up this September. Ivan and Jimmy will both be there, though—late breaking news—neither of them will be giving a talk. (“Rocket Rules” apply, if you know what that is.) [Will anyone actually know what “Rocket Rules” is? Will they search for it? That would be sort of embarrassing for me.]
If Ivan were to give a programming talk, getting some flood-contaminated gear from DEC or a PDP-11 to use as staging / set dressing might be a challenge. [Yay, another retread of my personal history. Maybe instead of dredging up my past I should be the sort of person who makes new things, like, ever.]
Meowmeowbeenz [Gah this show hasn’t aged well. At least I’m sticking to the whole “high-brow + low-brow” personal identity by including the reference to it. [Is “meta” low-brow at this point?]]
There’s lots of talk about esolangs (esoteric programming languages), so it’s worth linking the Esolang Wiki. [I worry that we spent too much time focusing on surface syntax. Jimmy tried to get us to talk about the beautifully-weird semantics within INTERCAL, but we never fully went there. I’m sure some people will complain about this lack of depth. Not looking forward to that.]
In particular, Brainfuck, which Jimmy adorably refers to as “BF” because he’s a polite gentleman and Ivan is 2% South Park. [Laughing at my own joke.]
Also, Shakespeare and Shakespeare: vaulting ambition, Out, damned spot, both from the Scottish play (you don’t know where I am, don’t @ me). [Why are these in the show notes? Am I trying to signal some sort of theatre-literacy? Who cares?]
“COMEFROM was eventually implemented in the C-INTERCAL variant of the esoteric programming language INTERCAL” [Considering that this was such a non-element in the original paper, it’s weird that it became such a cornerstone of the episode. “What if we recreated the spirit of the paper in the podcast itself” is a tall order, so I guess we did what we could with what we had. Also, I bet someone is going to object that the paper and language aren’t actually very meta, especially not multiple layers deep, to which I’ll reply: we all bring the flavour of our mouth to the soup we taste.]
Exapunks… Yeah! [Speaking of things that haven’t aged well… woof. I like our newer episodes better. Especially this one. THAT’S JUST BAIT FOR THE PEOPLE WHO WILL COMPLAIN THAT THIS SHOW HAS GONE OFF THE RAILS, PLEASE DO CONTINUE TO LISTEN TO THE SHOW.]
Our tier list was created in tldraw, because it’s the best. [I wish someone applied Steve-and-co’s eye for detail to a visual programming tool. I wish I had time.]
The excellent Advent of Computing podcast did an episode on INTERCAL. (Aside: the AoC website seems a bit busted in non-Chrome browsers, so here’s a backup YouTube link, but you can also just search for Advent of Computing in your podcast player of choice.) [AoC is the exception that proves the rule: there are no high-quality programming podcasts. They all seem so low-effort, made by people who don’t respect the listener’s time and attention. Or they’re aping the high-budget NPR style, with no personality. Also, audio quality is all over the map. Also, just the worst garbage ads and theme music, all of them! I wonder if it’s just a cost-benefit time/energy tradeoff, or maybe people don’t know how to do better? I wonder what we could do to help raise the bar, without opening ourselves up to a bunch of “well I don’t like your podcast either” presumed competitiveness.]
The video Screens in Screens in Screens is fantastic, and the sort of thing that deserves our support. Also, Lu Wilson (the human behind TodePond) has their own programming language that will not be named on podcasts, DreamBerd, which uses the ! to great effect. [Meta-commentary intentionally left blank.]
Some of the music featured in this episode:
Get in touch, ask us questions, send us the sound of your knuckles cracking:
https://futureofcoding.org/episodes/064
Support us on Patreon: https://www.patreon.com/futureofcoding
See omnystudio.com/listener for privacy information.
Out of the Tar Pit is in the grand pantheon of great papers, beloved the world over, with just so much influence. The resurgence of Functional Programming over the past decade owes its very existence to the Tar Pit’s snarling takedown of mutable state, championed by Hickey & The Cloj-Co. Many a budding computational philosophizer — both of yours truly counted among them — have been led onward to the late great Bro86 by this paper’s borrow of his essence and accident. But is the paper actually good? Like, really — is it that good? Does it hold up to the blinding light of hindsight that 2023 offers? Is this episode actually an April Fools joke, or is it a serious episode that Ivan just delayed by a few weeks because of life circumstances and his own incoherent sense of humour? I can’t tell.
Apologies in advance. Next time, we’re going back to our usual format to discuss Intercal.
Before anything else, we need to link to Simple Made Easy. If you don’t know, now you know! It’s a talk by Rich Hickey (creator of Clojure) that, as best as I can tell, widely popularized discussion of simplicity and complexity in programming, using Hickey’s own definitions that built upon the Tar Pit paper. Ignited by this talk, with flames fanned by a few others, as functional programming flared in popularity through the 2010s, the words “simple”, “easy”, “complex”, and “reason about” became absolutely raging memes.
We also frequently reference Fred Brooks and his No Silver Bullet. Our previous episode has you covered.
The two great languages of the early internet era: Perl & TcL
For more on Ivan’s “BLTC paradise-engineering wombat chocolate”, see our episode on Augmenting Human Intellect, if you dare.
For more on Jimmy’s “Satoshi”, see Satoshi Nakamoto, of course.
And for Anonymous, go on.
Enemy of the State — This film slaps.
“Some people prefer not to commingle the functional, lambda-calculus part of a language with the parts that do side effects. It seems they believe in the separation of Church and state.” — Guy Steele
FoC Challenge: Brooks claimed 4 evils lay at the heart of programming — Complexity, Conformity, Changeability, and Invisibility. Could you design a programming that had a different set of four evils at the heart of it? (Bonus: one of which could encompass the others and become the ur-evil)
The paper introduces something called Functional Relational Programming, abbreviated FRP. Note well, and do not be confused, that there is a much more important and common term that also abbreviates to FRP: Family Resource Program. Slightly less common, but yet more important and relevant to our interests as computer scientists, is the Fluorescence Recovery Protein in cyanobacteria. Less abundant, but again more relevant, is Fantasy Role-Playing, a technology with which we’ve all surely developed a high degree of expertise. For fans of international standards, see ISO 639-3 — the Franco-Provençal language, represented by language code frp. As we approach the finality of this paragraph, I’ll crucially point out that “FRP”, when spoken aloud all at once at though it were a word, sounds quite like the word frp, which isn’t actually a word — you’ve fallen right into my trap. Least importantly of all, and also most obscurely, and with only minor interest or relevance to listeners of the podcast and readers of this paragraph, we have the Functional Reactive Programming paradigm originally coined by Conor Oberst and then coopted by rapscallions who waste time down by the pier playing marbles.
FoC Challenge: Can you come up with a programming where informal reasoning doesn’t help? Where you are lost, you are without hope, and you need to get some kind of help other than reasoning to get through it?
It was not Epimenides who said “You can’t dip your little toesies into the same stream” two times — presumably because he only said it once.
Zig has a nicely explicit approach to memory allocation.
FoC Challenge: A programming where more things are explicit — building on the example of Zig’s explicit allocators.
Non-ergonomic, Non-von Neumann, Nonagon Infinity
Jimmy’s Philosophy Corner
For more on abstract objects (“do programs exist? do numbers exist?”), see the SEPs on Platonism in Metaphysics, Nominalism in Metaphysics, and the paper titled A Theory of Properties by Peter van Inwagen.
Music featured in this episode:
Get in touch, ask us questions, send us old family recipes:
https://futureofcoding.org/episodes/063
Support us on Patreon: https://www.patreon.com/futureofcoding
See omnystudio.com/listener for privacy information.
Your feedback is valuable to us. Should you encounter any bugs, glitches, lack of functionality or other problems, please email us on [email protected] or join Moon.FM Telegram Group where you can talk directly to the dev team who are happy to answer any queries.