Ben Darnell on Tornado - Episode 40

January 16, 2016

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

Summary

If you are trying to build a web application in Python that can scale to a high number of concurrent users, or you want to leverage the power of websockets, then Tornado just may be the library you need. In this episode we interview Ben Darnell about his work as the maintainer of the Tornado project and how it can be used in a number of ways to power your next high traffic site.

Do you want to try out some of the tools and applications that you heard about on Podcast.__init__? Do you have a side project that you want to share with the world? Check out Linode at linode.com/podcastinit or use the code podcastinit2019 and get a $20 credit to try out their fast and reliable Linux virtual servers. They’ve got lightning fast networking and SSD servers with plenty of power and storage to run whatever you want to experiment on.

On Hired software engineers & designers can get 5+ interview requests in a week and each offer has salary and equity upfront. With full time and contract opportunities available, users can view the offers and accept or reject them before talking to any company. Work with over 2,500 companies from startups to large public companies hailing from 12 major tech hubs in North America and Europe. Hired is totally free for users and If you get a job you’ll get a $2,000 “thank you” bonus. If you use our special link to signup, then that bonus will double to $4,000 when you accept a job. If you’re not looking for a job but know someone who is, you can refer them to Hired and get a $1,337 bonus when they accept a job.

Brief Introduction

Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.

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 to $4,000.

Your hosts as usual are Tobias Macey and Chris Patti

We recently launched a new Discourse forum for the show which you can find at discourse.pythonpodcast.com. Join us to discuss the show, the episodes, and ideas for future interviews.

Today we are interviewing Ben Darnell about his work on Tornado

Interview with Ben Darnell

Introductions

How did you get introduced to Python? – Chris

What is Tornado and what sets it apart from other HTTP servers? – Chris

How did you get involved with Tornado? – Ben

What was the inspiration for the name? – Tobias

Tornado was created before the recent focus on asynchronous applications. What prompted that design choice and when might someone care about using async in their development? – Tobias

What is involved in creating an event loop and what are some of the specific design decisions that you made when implementing one for Tornado? – Tobias

How does Tornado’s event loop compare to other packages such as Twisted or the asyncio module in the standard library? – Tobias

The web module appears to provide a minimal framework for developing web apps. How scalable are those capabilities and is there a recommended architecture for people using Tornado to develop web applications? – Tobias

What are some use cases in which a developer might choose Tornado over other similar options? – Chris

Could you please give our listeners an overview of Tornado’s concurrency options including coroutines? – Chris

I see that Tornado supports interoperability with the WSGI protocol and one of the use cases mentioned is for running a Django application alongside a Tornado app. Is that a common way for providing websocket capabilities alongside an existing web app? – Tobias

I noticed that Tornado provides non-blocking versions of bare sockets and TCP connections. Are there any add-on packages available to simplify the use of various network protocols along the lines of what Twisted includes? – Tobias

Please tell us about the transition of Tornado to Python 3. What obstacles did you face and how did you overcome them? – Chris

Based on your issue tracker it looks like http2 support is definitely on the roadmap. Could you please detail your future plans in this area? – Chris

What are some of the common “gotcha’s” for people who are just starting to use Tornado? – Tobias