POPULARITY
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. Links 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 “my tempo” 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 Esolangs 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
1:50 - Introducing Nate Murray Twitter Blog Fullstack.io Twitter Ng-book 2 download 2:45 - Redux and Angular 2 5:45 - Using Redux with apps 16:20 - Practical applications with Redux 24:35 - What problems does Redux solve? 28:00 - Mutable state 31:30 - Challenges in Redux 32:25 - Tradeoffs using NgRx Dan Abramov’s Github 43:15 - Flow changes in Redux 45:40 - Redux and observables 52:45 - Simplifying data structures without using Redux Breeze.js Picks: Alexander Hamilton by Ron Chernow (Ward) “Out of the Tar Pit” by Ben Moseley and Peter Marks (Lukas) RxJS Overview (Lukas) Fishing and fish frys with family (Charles) Using Angular 2 Patterns in Angular 1.x Apps by Lukas Ruebbelke (Nate) Building Angular 2 Applications with Immutable.js and Redux by Houssein Djirdeh (Nate) “A Cambrian and Explosion of Consensual Realities” by Venkatesh Rao (Nate)
1:50 - Introducing Nate Murray Twitter Blog Fullstack.io Twitter Ng-book 2 download 2:45 - Redux and Angular 2 5:45 - Using Redux with apps 16:20 - Practical applications with Redux 24:35 - What problems does Redux solve? 28:00 - Mutable state 31:30 - Challenges in Redux 32:25 - Tradeoffs using NgRx Dan Abramov’s Github 43:15 - Flow changes in Redux 45:40 - Redux and observables 52:45 - Simplifying data structures without using Redux Breeze.js Picks: Alexander Hamilton by Ron Chernow (Ward) “Out of the Tar Pit” by Ben Moseley and Peter Marks (Lukas) RxJS Overview (Lukas) Fishing and fish frys with family (Charles) Using Angular 2 Patterns in Angular 1.x Apps by Lukas Ruebbelke (Nate) Building Angular 2 Applications with Immutable.js and Redux by Houssein Djirdeh (Nate) “A Cambrian and Explosion of Consensual Realities” by Venkatesh Rao (Nate)
1:50 - Introducing Nate Murray Twitter Blog Fullstack.io Twitter Ng-book 2 download 2:45 - Redux and Angular 2 5:45 - Using Redux with apps 16:20 - Practical applications with Redux 24:35 - What problems does Redux solve? 28:00 - Mutable state 31:30 - Challenges in Redux 32:25 - Tradeoffs using NgRx Dan Abramov’s Github 43:15 - Flow changes in Redux 45:40 - Redux and observables 52:45 - Simplifying data structures without using Redux Breeze.js Picks: Alexander Hamilton by Ron Chernow (Ward) “Out of the Tar Pit” by Ben Moseley and Peter Marks (Lukas) RxJS Overview (Lukas) Fishing and fish frys with family (Charles) Using Angular 2 Patterns in Angular 1.x Apps by Lukas Ruebbelke (Nate) Building Angular 2 Applications with Immutable.js and Redux by Houssein Djirdeh (Nate) “A Cambrian and Explosion of Consensual Realities” by Venkatesh Rao (Nate)
1:50 - Introducing Torgeir Helgevold Blog Github Twitter 3:05 - Defining and using Web Worker 8:55 - Web Worker and value communication between threads 15:05 - Booting an app in Web Worker vs a browser 20:15 - Web Worker and mobile browsers 23:55 - Reality and perception of running apps on mobile devices 29:00 - Multi-threading and Web Workers Picks: Angular NgModule Doc (John) Tinker Crate (John) Angular 2 Router by Victor Savkin (Lukas) “Out of the Tar Pit” by Ben Moseley and Peter Marks (Lukas) Hardcore Henry (Joe) Vid Angel (Joe) Angular 2 Class with John Pop and Dan Moleen. Use code “AIA” for $200 off registration (Joe) Angular 2 Gitter chat (Tor)
1:50 - Introducing Torgeir Helgevold Blog Github Twitter 3:05 - Defining and using Web Worker 8:55 - Web Worker and value communication between threads 15:05 - Booting an app in Web Worker vs a browser 20:15 - Web Worker and mobile browsers 23:55 - Reality and perception of running apps on mobile devices 29:00 - Multi-threading and Web Workers Picks: Angular NgModule Doc (John) Tinker Crate (John) Angular 2 Router by Victor Savkin (Lukas) “Out of the Tar Pit” by Ben Moseley and Peter Marks (Lukas) Hardcore Henry (Joe) Vid Angel (Joe) Angular 2 Class with John Pop and Dan Moleen. Use code “AIA” for $200 off registration (Joe) Angular 2 Gitter chat (Tor)
1:50 - Introducing Torgeir Helgevold Blog Github Twitter 3:05 - Defining and using Web Worker 8:55 - Web Worker and value communication between threads 15:05 - Booting an app in Web Worker vs a browser 20:15 - Web Worker and mobile browsers 23:55 - Reality and perception of running apps on mobile devices 29:00 - Multi-threading and Web Workers Picks: Angular NgModule Doc (John) Tinker Crate (John) Angular 2 Router by Victor Savkin (Lukas) “Out of the Tar Pit” by Ben Moseley and Peter Marks (Lukas) Hardcore Henry (Joe) Vid Angel (Joe) Angular 2 Class with John Pop and Dan Moleen. Use code “AIA” for $200 off registration (Joe) Angular 2 Gitter chat (Tor)