Date: Mon, 01 Jun 2020 21:00:00 -0400
<div class="wp-block-jetpack-markdown"><h3>Summary</h3> <p>The divide between Python 2 and 3 lasted a long time, and in recent years all of the new features were added to version 3. To help bridge the gap and extend the viability of version 2 Naftali Harris created Tauthon, a fork of Python 2 that backports features from Python 3. In this episode he explains his motivation for creating it, the process of maintaining it and backporting features, and the ways that it is being used by developers who are unable to make the leap. This was an interesting look at how things might have been if the elusive Python 2.8 had been created as a more gentle transition.</p> <h3>Announcements</h3> <ul> <li>Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.</li> <li>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 <a href="https://www.pythonpodcast.com/linode?utm_source=rss&utm_medium=rss">pythonpodcast.com/linode</a> and get a $60 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show!</li> <li>You listen to this show because you love Python and want to keep your skills up to date, and machine learning is finding its way into every aspect of software engineering. Springboard has partnered with us to help you take the next step in your career by offering a scholarship to their Machine Learning Engineering career track program. In this online, project-based course every student is paired with a Machine Learning expert who provides unlimited 1:1 mentorship support throughout the program via video conferences. You’ll build up your portfolio of machine learning projects and gain hands-on experience in writing machine learning algorithms, deploying models into production, and managing the lifecycle of a deep learning prototype. Springboard offers a job guarantee, meaning that you don’t have to pay for the program until you get a job in the space. Podcast.__init__ is exclusively offering listeners 20 scholarships of $500 to eligible applicants. It only takes 10 minutes and there’s no obligation. Go to <a href="https://www.pythonpodcast.com/springboard?utm_source=rss&utm_medium=rss">pythonpodcast.com/springboard</a> and apply today! Make sure to use the code AISPRINGBOARD when you enroll.</li> <li>Your host as usual is Tobias Macey and today I’m interviewing Naftali Harris about his work on Tauthon, a fork of Python 2 that backports features from Python 3</li> </ul> <h3>Interview</h3> <ul> <li>Introductions</li> <li>How did you get introduced to Python?</li> <li>Can you start by describing what Tauthon is and your motivations for creating it? <ul> <li>What’s the story behind the name?</li> </ul> </li> <li>What types of applications and environments are you using Tauthon in?</li> <li>How much adoption of Tauthon have you seen? <ul> <li>What are some of the different ways that your users are employing it?</li> </ul> </li> <li>Is this the missing "2.8" release? In other words, is this intended to be a bridge for simplifying the migration of existing Python 2 code to Python 3, or as an extended support window for Python 2?</li> <li>What features have you backported from Python 3? <ul> <li>What is your process for identifying and prioritizing features to bring into Tauthon?</li> </ul> </li> <li>What is your workflow for implementing the backported functionality in Tauthon?</li> <li>What are some of the cases where you have had to compromise on the functionality or syntax of a feature that you have backported in order to fit into Python 2? <ul> <li>What is your governing philosophy for how to manage syntax or behavior differences between Python 2 and 3?</li> <li>What have been the most challenging features to backport and maintain?</li> <li>What are some of the ways that Tauthon might break existing Python 2 code?</li> </ul> </li> <li>What is the story for compatibility with libraries that are Python 3 only?</li> <li>What have you seen in terms of adoption of Tauthon? <ul> <li>Do you have any sense of the commonalities among those users?</li> </ul> </li> <li>What are some of the ecosystem challenges that faces users of Tauthon? (e.g. Pip support, package compatibility, etc.)</li> <li>What are some of the most interesting, unexpected, or challenging lessons that you have learned in the process of creating and maintaining Tauthon?</li> <li>What are your long-term plans for Tauthon, and how have they changed since you first started working on it?</li> </ul> <h3>Keep In Touch</h3> <ul> <li><a href="https://www.naftaliharris.com/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Website</a></li> <li><a href="https://twitter.com/naftaliharris?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">@naftaliharris</a> on Twitter</li> <li><a href="https://github.com/naftaliharris/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">naftaliharris</a> on GitHub</li> </ul> <h3>Picks</h3> <ul> <li>Tobias <ul> <li><a href="https://github.com/dagster-io/dagster/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Dagster</a></li> <li><a href="https://us.pycon.org/2020/online/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">PyCon 2020 Online</a></li> </ul> </li> <li>Naftali <ul> <li><a href="https://sentilink.com/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Sentilink</a></li> <li><a href="https://en.wikipedia.org/wiki/Timsort?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Timsort</a></li> <li><a href="https://en.wikipedia.org/wiki/Tim_Peters_(software_engineer)?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Tim Peters</a></li> </ul> </li> </ul> <h3>Links</h3> <ul> <li><a href="https://github.com/naftaliharris/tauthon?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Tauthon</a></li> <li><a href="https://www.python.org/dev/peps/pep-3107/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Function Annotations</a></li> <li><a href="https://en.wikipedia.org/wiki/Turn_(angle)#Tau_proposals?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Tau</a></li> <li><a href="https://github.com/ncoghlan?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Nick Coghlan</a></li> <li><a href="http://mypy-lang.org/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">MyPy</a> <ul> <li><a href="https://www.pythonpodcast.com/episode-65-mypy-with-david-fisher-and-greg-price/?utm_source=rss&utm_medium=rss">Podcast Episode</a></li> </ul> </li> <li><a href="https://www.python.org/dev/peps/pep-0465/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Matrix Multiplier Operator</a></li> <li><a href="https://www.python.org/dev/peps/pep-0617/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Python 3.9 PEG Parser</a></li> <li><a href="https://pypi.org/project/lazysorted/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">lazysorted</a></li> <li><a href="https://www.python.org/dev/peps/pep-3104/#proposed-solution?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">nonlocal keyword</a></li> <li><a href="https://www.valgrind.org/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Valgrind</a></li> </ul> <p>The intro and outro music is from Requiem for a Fish <a href="http://freemusicarchive.org/music/The_Freak_Fandango_Orchestra/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">The Freak Fandango Orchestra</a> / <a href="http://creativecommons.org/licenses/by-sa/3.0/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">CC BY-SA</a></p> </div> <img alt="" height="0" src="https://analytics.boundlessnotions.com/piwik.php?idsite=1&rec=1&url=https%3A%2F%2Fwww.pythonpodcast.com%2Ftauthon-python-2-fork-episode-265%2F&action_name=Extending+The+Life+Of+Python+2+Projects+With+Tauthon+-+Episode+265&urlref=https%3A%2F%2Fwww.pythonpodcast.com%2Ffeed%2F&utm_source=rss&utm_medium=rss" style="border: 0; width: 0; height: 0;" width="0" />