Python 2 Sunsetting: A Huge Challenge for Banks and Finance IT

Earlier this month, the Python Software Foundation (a group of volunteers who look after the Python programming language) announced publicly that it will sunset Python 2 as of January 1, 2020. From that date on, even if a security problem is found in Python 2, PSF won’t do anything about it.

The sunsetting of this old version of Python has been in the works for some time. After all, Python 3 was launched 11 years ago, and the original intention was to stop supporting Python 2 in 2015. Out of the kindness of its heart, the Python Software Foundation agreed to keep supporting the old version until 2020 in the express belief that “the extra 5 years is sufficient to transition off of Python 2… if not before.” Actually, considering the amount of legacy Python 2 code out there, that was probably a good move for everyone, including the harried developers who needed as much time as possible to update everything.

And for some organizations, that extra five years does seem to have been a help. Instagram, for example, moved to Python 3 from Python 2.7 amid much fanfare in 2017, with no issues for its 400 million daily users. Dropbox performed a similar migration between 2015 and 2018

But banks, despite their well-documented love of all things Python, have been dragging their collective feet when it comes to updating.

One of the foot-draggers is JPMorgan, which runs its all-important Athena next-generation pricing, risk management, analysis and trade management platform on Python 2.7. The bank didn’t respond to a request to comment for this article, but sources said JPM is not going to be ready to switch fully to Python 3 by the January 1 deadline. Oh dear.

Although Instagram moved to Python 3 in 2017, it seems JPM’s strategy for transferring Athena to Python 3 only really kicked in by late 2018, and is being handled gradually. This year, the bank has been busy making core Athena code and libraries compatible with Python 3, and expects to have most strategic components compatible by the end of the first quarter of 2020 (i.e., three months after the deadline). However, it’s only by the fourth quarter of 2020 that all legacy Python 2.7 components in Athena will be Py3 compatible, and JPMorgan’s support for Py2 will be dropped completely. 

While JPMorgan is known to still be using Python 2.7, it’s not the only bank in this position. Python 2 is widely used in the finance industry, and banks are not always the fastest to adapt. Goldman Sachs is using Python 3.6 in its open-source quant finance package, but the bank still invites students to take Hackerrank tests in Python 2. Most developers will tell you that banks have huge Python 2 dependencies.

Does this matter? What happens when the Python Software Foundation stops supporting its old language? Clearly, platforms such as Athena will keep working. JPMorgan said last year that it has 2,000 developers working on Athena, and some of them are likely to be diverted to creating security patches. Plus, specialist vendors are offering to support Python 2 beyond the January deadline, and banks can always pay for their services. 

By the middle of next year, then, banks are likely to be some of the last places using Python 2. With most new developers learning Python 3, Python 2 expertise could become a valuable skill for a few months, at least until banks complete their migrations.

This article originally appeared in eFinancialCareers.