Out of the Tar Pit by Ben Moseley & Peter Marks
Description
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?
- Linear B
- LinearB
- Intercal
- FoC Challenge: Can you come up with a kind of testing where using a particular set of inputs does tell you something about the system/component when it is given a different set of inputs?
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
- One of Ivan’s favourite musical acts of the 00s is the ever-shapeshifting Animal Collective — of course 🙄. If you’ve never heard of them, the best album to start with is probably the avant-pop Feels, though their near-breakthrough was the loop-centric Merriweather Post Pavilion, and Ivan’s personal favourite is, as of this writing, the tender psychedelic folk of Prospect Hummer.
Jimmy’s Philosophy Corner
- To learn more about possible worlds (“not all possibilities are possible”), take a look at the SEP articles on Possible Worlds, Modal Logic, Varieties of Modality, and the book Naming and Necessity by Saul Kripke.
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:
- Jimmy’s Philosophy Corner got a new stinger. No link, sorry. Why does this feel like a changelog?
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.