Brooklyn Zelenka on Functional Programming episode artwork

EPISODE · Jan 23, 2020 · 39 MIN

Brooklyn Zelenka on Functional Programming

from Elixir Wizards · host SmartLogic LLC

In today’s episode we have one of our favorite recurring guests, Brooklyn Zelenka, joining us once again! Brooklyn has been on the show in both the first and second seasons to speak about Elixir and functional programming. In those conversations, it came up that this topic is far from exhausted, and since Season 3's theme is working with Elixir, we thought it would be great to have Brooklyn on for a third time. Today, Brooklyn does not speak to Elixir specifically though, but on functional programming more broadly. Fission, her company which is working on developing next-generation hostless apps, actually uses Haskel, but Brooklyn has a ton of experience across the board. She gives us some great insights into what makes the functional versus OOP paradigm great and helps us to understand some of the inner workings of both worlds, talking about abstraction, application, data orientation, and more. Interestingly, Brooklyn does employ some imperative programming in her company through the use of Typescript, but uses a functional style to get around the context switch. We spend some time toward the end of the show digging deeper into macros, and Brooklyn helps to revise understandings of them as code which writes more code as well as clarifies the term 'homoiconic' as it relates to ASTs. Brooklyn covers a whole lot more today so hop on for a deep dive into functional programming with today's great guest. Key Points From This Episode: • Why Brooklyn uses FPE: it can be reused and reasoned about. • Two things that functions provide: abstraction and application. • Data orientation and hiding information: imperative vs functional paradigms. • Understanding imperative programming: it’s less structured and hard to reason about. • Challenges experienced imperative programmers face with functional programming. • Differences between Elixir, Erlang, Haskel, Elm, and Clojure. • Using Clojure: tradeoffs, distinctions, tooling, flexibility, and compatibility with Java. • The language Brooklyn could use if only one existed: Racket. • Bridging functional and imperative paradigms through disciplined use of style. • Segfaults in Haskell related to its compatibility with lib C. • How to use Musl instead of lib C by employing docker files. • Algebraic types and why static types aren’t hindrances in functional languages. • Preferences for tests or proofs and their role in finding types valuable. • Macros as compile-time functions that are difficult to debug. • A definition of a ‘homoiconic’: high-level syntax which represents the AST. • What makes C macros different from Lisp ones. • Architecture in Elixir and the need for a more user-friendly Haskell. Links Mentioned in Today’s Episode: SmartLogic — https://smartlogic.io/ Brooklyn Zelenka on LinkedIn — https://www.linkedin.com/in/brooklynzelenka/ Fission — https://fission.codes/ Seven Languages in Seven Weeks — https://www.amazon.com/Seven-Languages-Weeks-Programming-Programmers/dp/193435659X Chris Keathley — https://keathley.io/ Hackers and Painters — https://www.amazon.com/Hackers-Painters-Big-Ideas-Computer/dp/1449389554 Paul Graham — http://www.paulgraham.com/Special Guest: Brooklyn Zelenka.

In today’s episode we have one of our favorite recurring guests, Brooklyn Zelenka, joining us once again! Brooklyn has been on the show in both the first and second seasons to speak about Elixir and functional programming. In those conversations, it came up that this topic is far from exhausted, and since Season 3's theme is working with Elixir, we thought it would be great to have Brooklyn on for a third time. Today, Brooklyn does not speak to Elixir specifically though, but on functional programming more broadly. Fission, her company which is working on developing next-generation hostless apps, actually uses Haskel, but Brooklyn has a ton of experience across the board. She gives us some great insights into what makes the functional versus OOP paradigm great and helps us to understand some of the inner workings of both worlds, talking about abstraction, application, data orientation, and more. Interestingly, Brooklyn does employ some imperative programming in her company through the use of Typescript, but uses a functional style to get around the context switch. We spend some time toward the end of the show digging deeper into macros, and Brooklyn helps to revise understandings of them as code which writes more code as well as clarifies the term 'homoiconic' as it relates to ASTs. Brooklyn covers a whole lot more today so hop on for a deep dive into functional programming with today's great guest. Key Points From This Episode: • Why Brooklyn uses FPE: it can be reused and reasoned about. • Two things that functions provide: abstraction and application. • Data orientation and hiding information: imperative vs functional paradigms. • Understanding imperative programming: it’s less structured and hard to reason about. • Challenges experienced imperative programmers face with functional programming. • Differences between Elixir, Erlang, Haskel, Elm, and Clojure. • Using Clojure: tradeoffs, distinctions, tooling, flexibility, and compatibility with Java. • The language Brooklyn could use if only one existed: Racket. • Bridging functional and imperative paradigms through disciplined use of style. • Segfaults in Haskell related to its compatibility with lib C. • How to use Musl instead of lib C by employing docker files. • Algebraic types and why static types aren’t hindrances in functional languages. • Preferences for tests or proofs and their role in finding types valuable. • Macros as compile-time functions that are difficult to debug. • A definition of a ‘homoiconic’: high-level syntax which represents the AST. • What makes C macros different from Lisp ones. • Architecture in Elixir and the need for a more user-friendly Haskell. Links Mentioned in Today’s Episode: SmartLogic — https://smartlogic.io/ Brooklyn Zelenka on LinkedIn — https://www.linkedin.com/in/brooklynzelenka/ Fission — https://fission.codes/ Seven Languages in Seven Weeks — https://www.amazon.com/Seven-Languages-Weeks-Programming-Programmers/dp/193435659X Chris Keathley — https://keathley.io/ Hackers and Painters — https://www.amazon.com/Hackers-Painters-Big-Ideas-Computer/dp/1449389554 Paul Graham — http://www.paulgraham.com/Special Guest: Brooklyn Zelenka.

NOW PLAYING

Brooklyn Zelenka on Functional Programming

0:00 39:26

No transcript for this episode yet

We transcribe on demand. Request one and we'll notify you when it's ready — usually under 10 minutes.

REWIND: The Musician’s Podcast - How to Grow Your Music Career Amit Weiner Welcome to Rewind!An optimistic podcast that will help you in your successful Career in Music!Amit Weiner hosts musicians, composers, professors, and sound wizards, as they share their life stories and career decisions.Stay tuned, it’s gonna be epic! Behind The Irishman Netflix Go behind the scenes of Martin Scorsese’s The Irishman with this official companion podcast from Netflix. Hosted by comedian and The Irishman co-star Sebastian Maniscalco (“Crazy Joe” Gallo), this three-part series features interviews with cast and crew, including Martin Scorsese, Robert De Niro, Al Pacino, and Joe Pesci. Hear the story of Frank “The Irishman” Sheeran from the man he chose to tell it—and how Scorsese and De Niro fought for years to bring that story to the screen. Plus, learn about the brand-new technology the visual effects wizards at Industrial Light and Magic built to bring this epic tale to life. This podcast was produced by Netflix with FannieCo and Crossroad Productions. Thinking Elixir Podcast ThinkingElixir.com The Thinking Elixir podcast is a weekly show where we talk about the Elixir programming language and the community around it. We cover news and interview guests to learn more about projects and developments in the community. Whether you are already experienced with Elixir or just exploring the language, this show is created with you in mind. We discuss community news, Functional Programming, transitioning from OOP, coding conventions, and more. Guests visit the show to help challenge our assumptions, learn about new developments and grow in the process. Subscribe to join us on this journey! The Magic Academy John Fletcher, Russell Earnshaw Supporting coaching wizards! Rusty and Fletch love to hang with rockstars from the coaching world and get them sharing through some pretty cool questions

Frequently Asked Questions

How long is this episode of Elixir Wizards?

This episode is 39 minutes long.

When was this Elixir Wizards episode published?

This episode was published on January 23, 2020.

What is this episode about?

In today’s episode we have one of our favorite recurring guests, Brooklyn Zelenka, joining us once again! Brooklyn has been on the show in both the first and second seasons to speak about Elixir and functional programming. In those conversations, it...

Can I download this Elixir Wizards episode?

Yes, you can download this episode by clicking the download button on the episode player, or subscribe to the podcast in your preferred podcast app for automatic downloads.
URL copied to clipboard!