Functional Programming

Coconut with Evan Hubinger - Episode 112

Summary

Functional programming is gaining in popularity as we move to an increasingly parallel world. Sometimes you want access to purely functional syntax and capabilities but you don’t want to have to learn an entirely new language. Coconut is here to help! This week Evan Hubinger explains how Coconut is a functional language that compiles to Python and can be mixed and matched with the rest of your program.

Preface

  • Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
  • I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable.
  • When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at www.podastinit.com/linode and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app.
  • Visit the site to subscribe to the show, sign up for the newsletter, read the show notes, and get in touch.
  • To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media.
  • Your host as usual is Tobias Macey and today I’m interviewing Evan Hubinger about Coconut, a functional language implemented as a superset of Python

Interview

  • Introductions
  • How did you get introduced to Python?
  • Can you start by explaining what Coconut is and what problem you were trying to solve when you created it?
    • Where did the name come from?
  • How is Coconut implemented and what does the compilation process for Coconut code look like?
  • How will I be able to debug my Python if I’m not the one writing it?
  • The documentation mentions that Coconut itself is compatible with both Python 2 and 3, are there any caveats to be aware of in terms of mixing in standard Python syntax?
  • Are there any performance optimizations that you have had to perform in order to make things like recursion and pattern matching work at reasonable speeds in the Python VM?
  • Which functional languages have you taken inspiration from during the creation of Coconut?
  • What are some of the most interesting or unexpected uses of Coconut that you have seen?
  • What are some resources that you recommend for people who are interested in learning more about functional programming?

Keep In Touch

Picks

The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

Efene with Mariano Guerra - Episode 47

Visit our site to listen to past episodes, support the show, join our community, and sign up for our mailing list.

Summary

Efene is a language that runs on the Erlang Virtual Machine (BEAM) and is inspired by the Zen of Python. It is intended as a bridge language that serves to ease the transition into the Erlang ecosystem for people who are coming from languages like Python. In this episode I spoke with Mariano Guerra, the creator of Efene, about how Python influenced his design choices, why you might want to use it, and when Python is the better tool.

Brief Introduction

  • Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
  • Subscribe on iTunes, Stitcher, TuneIn or RSS
  • Follow us on Twitter or Google+
  • Give us feedback! Leave a review on iTunes, Tweet to us, send us an email or leave us a message on Google+
  • Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas.
  • I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com
  • Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project
  • I would also like to thank Hired, a job marketplace for developers, for sponsoring this episode of Podcast.__init__. Use the link hired.com/podcastinit to double your signing bonus.
  • Your host today is Tobias Macey
  • Today we are interviewing Mariano Guerra about his work on the Efene language.

Interview with Mariano Guerra

  • Introductions
  • How did you get introduced to Python? – Chris
  • So Efene is a language that runs on the BEAM VM which you say was at least partially inspired by the Zen of Python. Can you explain in greater detail in what form that inspiration manifested and some of the process involved in the creation of Efene? – Tobias
  • What inspired you to create Efene and what problems does it solve? – Tobias
  • How does Efene compare to other BEAM based languages such as Elixir? – Tobias
  • When would a Python developer want to consider using Efene? – Tobias
  • What benefits does the BEAM provide that can’t be easily replicated in the Python ecosystem? – Tobias
  • Does the Efene language ease the transition to a more functional mindset for developers who are already familiar with Python paradigms? – Tobias
  • I understand that you are experimenting with another language implementation that runs on the BEAM. Can you describe that project and compare it to Efene? What were your inspirations? – Tobias

Keep In Touch

Picks

Links

The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

Functional Python with Matthew Rocklin and Alexander Schepanovsky - Episode 46

Visit our site to listen to past episodes, support the show, join our community, and sign up for our mailing list.

Summary

What is functional programming, why would you want to use it, and how can you get started with it in Python? Our guests this week, Matthew Rocklin and Alexander Schepanovsky, help us understand all of that and more. Matthew and Alexander have each created their own Python libraries to make it easier to employ functional paradigms in your Python code. In this episode they help us understand the benefits that functional styles can have and the benefits that can be realized by trying them out for yourself.

Brief Introduction

  • Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
  • Subscribe on iTunes, Stitcher, TuneIn or RSS
  • Follow us on Twitter or Google+
  • Give us feedback! Leave a review on iTunes, Tweet to us, send us an email or leave us a message on Google+
  • Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas.
  • I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com
  • Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project
  • I would also like to thank Hired, a job marketplace for developers and designers, for sponsoring this episode of Podcast.__init__. Use the link hired.com/podcastinit to double your signing bonus.
  • Your host today is Tobias Macey
  • Today we are interviewing Matthew Rocklin and Alexander Schepanovski about their work on functional libraries for Python.

Interview with Alexander and Matthew

  • Introductions
  • How did you get introduced to Python? – Chris
  • Can you first explain what functional programming is and how it differs from the procedural or object oriented programming that most Pythonistas are familiar with? – Tobias
  • How did you get started with functional programming? – Tobias
  • What are the benefits of functional programming and when might someone want to use functional paradigms in their projects? – Tobias
  • What is it about functional programming that people find so intimidating and what do you think has led to its recent rise in popularity? – Tobias
  • What aspects of the Python language lend themselves to being used in a functional manner and where does it fall down? – Tobias
  • Can you each describe what your respective libraries provide in terms of functional capabilities and what their particular focus is? Are they distinct enough from each other that it would make sense to use them both in a single project? – Tobias
  • What inspired each of you to create your respective libraries? – Tobias
  • There is a functools module in the Python standard library that provides some methods that enable functional paradigms. Where does that module fall short and how do your respective libraries augment or replace the functionality in that module? – Tobias
  • There is also a library named fn.py which provides functional paradigms for use in Python. Can you each compare and contrast it with your own work? – Tobias
  • There are a number of concepts involved in functional programming such as currying, function composition, immutable data, and pure functions. Can you describe some of those concepts and then explain which of them you tried to incorporate into your libraries? – Tobias
  • What are some of the resources that you have found to be most helpful when trying to learn and apply functional principles to your programs? – Tobias

Keep In Touch

Picks

Links

The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA