Summary When you are writing a script it can become unwieldy to understand how the logic and data are flowing through the program. To make this easier to follow you can use a flow-based approach to building your programs. Leonn Thomm created the Ryven project as an environment for visually constructing a flow-based program. In this episode he shares his inspiration for creating the Ryven project, how it changes the way you think about program design, how Ryven is implemented, and how to get started with it for your own programs. Announcements Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. When you’re ready to launch your next app or want to try a project you hear about on the show, you’ll need somewhere to deploy it, so take a look at our friends over at Linode. With the launch of their managed Kubernetes platform it’s easy to get started with the next generation of deployment and scaling, powered by the battle tested Linode platform, including simple pricing, node balancers, 40Gbit networking, dedicated CPU and GPU instances, and worldwide data centers. Go to pythonpodcast.com/linode and get a $100 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show! Your host as usual is Tobias Macey and today I’m interviewing Leon Thomm about Ryven, a flow-based visual scripting environment for Python Interview Introductions How did you get introduced to Python? Can you start by giving an overview of what Ryven is and what inspired you to create it? What is flow-based visual scripting? What are other popular flow-based visual scripting systems out there and have they been inspiring to the project? What problem(s) do these try to solve? What are some of the places where you are drawing inspiration for Ryven? What are the kinds of projects that someone might build with Ryven? How are you using Ryven in your personal projects? How does structuring a project as a set of nodes in a flow graph influence the way that you think about how to design the solution to a problem? Can you describe how Ryven is implemented? How has the design or goals of the project changed or evolved since you first began working on it? For someone who wants to use Ryven to build a project can you describe their workflow? How do you handle things like code quality and tests for a Ryven project? How do you manage collaboration for a Ryven project? (e.g. version control) What are some of the most interesting, innovative, or unexpected ways that you have seen Ryven used? What are the most interesting, unexpected, or challenging lessons that you have learned while building Ryven? When is Ryven the wrong choice? What do you have planned for the future of the project? Keep In Touch leon-thomm on GitHub Picks Tobias PyInfra Leon A Universe from Nothing! by Lawrence M. Krauss Links Ryven Switzerland Qt C++ framework Flow-based Scripting Unreal Engine Node-RED IFTTT == IF This Then That DAG == Directed Acyclic Graph Mind Map Literate Programming nbdev Podcast Episode Org Mode OpenCV scikit-learn Unreal Python The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA