“Users of an old version of the popular Python language face a reckoning at the end of the year,” reports Wired, calling it a programmer’s “own version of update hell.”
The developers who maintain Python, who work for a variety of organizations or simply volunteer their time, say they will stop supporting Python 2 on January 1, 2020 — more than a decade after the introduction of Python 3 in December 2008. That means no more security fixes or other updates, at least for the official version of Python.
The Python team extended the initial deadline in 2015, after it became apparent that developers needed more time to make the switch.
It’s hard to say how many organizations still haven’t made the transition. A survey of developers last year by programming toolmaker JetBrains found that 75 percent of respondents use Python 3, up from 53 percent the year before. But data scientist Vicki Boykis points out in an article for StackOverflow that about 40 percent of software packages downloaded from the Python code management system PyPI in September were written in Python 2.7. For many companies, the transition remains incomplete. Even Dropbox, which employed Python creator Guido van Rossum until his retirement last month, still has some Python 2 code to update. Dropbox engineer Max Belanger says shifting the company’s core desktop application from Python 2 to Python 3 took three years. “It wasn’t a lot of absolute engineering work,” Belanger says. “But it took a long time because stability is so important. We wanted to make sure our users didn’t feel any effects of the transition.”
The transition from Python 2 to 3 is challenging in part because of the number and complexity of other tools that programmers use. Programmers often rely on open source bundles of code known as “libraries” that handle common tasks, such as connecting to databases or verifying passwords. These libraries spare developers from having to rewrite these features from scratch. But if you want to update your code from Python 2 to Python 3, you need to make sure all the libraries you use also have made the switch. “It isn’t all happening in isolation,” Belanger says. “Everyone has to do it.”
Today, the 360 most popular Python packages are all Python 3-compatible, according to the site Python 3 Readiness. But even one obscure library that hasn’t updated can cause headaches.
Python’s core team is now prioritizing smaller (but more frequent) updates to make it easier to migrate to newer versions, according to the article, noting that Guido Van Rossum “wrote last month that there might not ever be a Python 4. The team could just add features to Python 3 indefinitely that don’t break backward compatibility.”
Read more of this story at Slashdot.