JSJ 388: Functional Programming with Brian Lonsdorf

JavaScript Jabber

Episode | Podcast

Date: Tue, 03 Sep 2019 10:00:00 +0000

<div class="trix-content"> <div><strong>Sponsors</strong></div><ul> <li><a href="https://devchat.tv/adventures-in-blockchain/"><strong>Adventures in Blockchain</strong></a></li> <li> <a href="http://sentry.io/"><strong>Sentry</strong></a><strong>– use the code “devchat” for $100 credit </strong> </li> <li><a href="https://devchat.tv/my-ruby-story/"><strong>My Ruby Story</strong></a></li> </ul><div><strong>Panel</strong></div><ul> <li><strong>Aimee Knight </strong></li> <li><strong>Chris Buecheler</strong></li> <li><strong>AJ O’Neal</strong></li> </ul><div><strong>With Special Guest: Brian Lonsdorf</strong></div><div><strong>Episode Summary</strong></div><div><strong>Brian Lonsdorf works for Salesforce, specializes in functional programming, and wrote a book called Professor Frisby’s Mostly Adequate Guide to Functional Programming. Brian talks about when he got into functional programming and when in their career others should be exposed to it. He talks about the fundamental tenets of functional programming (static mathematical functions), how it differs from object oriented programming, and how to manipulate data in a functional environment. The panel wonders if it is possible to use functional and object oriented programming together and discuss the functional core imperative shell. Brian talks about what is ‘super functional’ and why JavaScript isn’t, but includes methods for making it work. He shares some of the trade-offs he’s found while doing functional programming. Brian defines a monad and goes over some of the common questions he gets about functional programming, such as how to model an app using functional programming. The show concludes with Brian talking about some of the work he’s been doing in AI and machine learning. </strong></div><div><strong>Links</strong></div><ul> <li><a href="https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Promise"><strong>Promise</strong></a></li> <li><a href="https://www.destroyallsoftware.com/screencasts/catalog/functional-core-imperative-shell"><strong>Functional core, imperative shell</strong></a></li> <li><a href="https://rxjs-dev.firebaseapp.com/"><strong>RxJs</strong></a></li> <li><a href="https://stackoverflow.com/questions/2704652/monad-in-plain-english-for-the-oop-programmer-with-no-fp-background/2704795"><strong>Monad</strong></a></li> <li><a href="https://drboolean.gitbooks.io/mostly-adequate-guide-old/content/ch1.html"><strong>Professor Frisby's Mostly Adequate Guide to Functional Programming</strong></a></li> </ul><div> <strong>Follow DevChat on </strong><a href="https://www.facebook.com/DevChattv/?__tn__=%2Cd%2CP-R&amp;eid=ARDBDrBnK71PDmx_8gE_IeIEo5SnM7cyzylVBjAwfaOo1ck_6q3GXuRBfaUQZaWVvFGyEVjrhDwnS_tV"><strong>Facebook</strong></a><strong> and </strong><a href="https://twitter.com/devchattv?lang=en"><strong>Twitter</strong></a> </div><div><strong>Picks</strong></div><div><strong>Aimee Knight:</strong></div><ul><li><a href="https://open.spotify.com/artist/0uNj4RxFjG0iVPlZS753en?si=hjggUHceRnG6sRIFluNEgA"><strong>After The Burial (band)</strong></a></li></ul><div><strong>Chris Buecheler:</strong></div><ul><li><a href="https://github.com/ian13456/mc.js"><strong>Minecraft in JavaScript</strong></a></li></ul><div><strong>AJ O’Neal:</strong></div><ul> <li><a href="https://amzn.to/2N1pMnE?ie=UTF8&amp;qid=1548462018&amp;sr=8-1&amp;linkCode=ll1&amp;tag=devchattv-20&amp;linkId=f06bfe7482dca8bb751ed6d7cc86e2ab&amp;language=en_US"><strong>Crazy Little Thing Called Love by Queen</strong></a></li> <li><a href="https://igg.me/at/greenlock"><strong>Greenlock v3 campaign</strong></a></li> </ul><div><strong>Brian Lonsdorf:</strong></div><ul> <li><strong>Follow Brian @drboolean</strong></li> <li><a href="https://www.youtube.com/watch?v=HOmOQnQGtPU"><strong>Chris Penner Comonads</strong></a></li> </ul><div>Special Guest: Brian Lonsdorf.</div> </div> Support this podcast at — https://redcircle.com/javascript-jabber/donations Advertising Inquiries: https://redcircle.com/brands Privacy & Opt-Out: https://redcircle.com/privacy