C++ is making a comeback. It ranked fourth on the Tiobe Index as the most popular coding language this month after being rated top by 8% of people. That doesn't exactly put it on a par with C or Java or Python at 11-12%, but it does mean that C++ is up there with the favourites- and that it's continuing a run of increasing popularity that began at the start of 2020.
As we've noted before, C++ has historically been used for a particular set of functions in investment banks and financial services firms. By virtue of its low level memory access and therefore speed, it's often the language of choice for high speed trading systems. This is why JPMorgan, for example, is currently hiring a C++ engineer for its JISU low-latency platform, why hedge fund Citadel wants a C++ engineer for its own market making systems, and why Goldman looks for C++ expertise for its systematic trading team.
As high speed electronic trading systems become an increasingly important differentiator and algorithmic trading takes hold beyond the equities markets, C++ expertise stands to become more sought-after in finance. Paul Bilokon, a former credit quant at Deutsche Bank and founder of AI company Thalesians, has long been an exponent. Bilokon points out that Bjarne Stroustrup, the Danish computer scientist who created C++, described it as a language for defining and using light-weight abstractions, and that this makes it peculiarly appropriate in banks and hedge funds. "Finance is full of abstractions. And there is a lot of demand for their light-weight implementations - in derivatives pricing and, most pertinently, in high-frequency trading, where there are few alternatives to C++," he says.
As C++ evolves, Bilokon says its use is spreading. Hedge fund Millennium specifies that its quantitative developers have, "substantial modern C++ programming experience," a designation that it doesn't define and that can mean different things to different people. "Modern C++ used to mean C++11 and above, but nowadays may be taken to mean C++17 or even C++20 and above," says Bilokon.
In finance and elsewhere, the more recent iterations of C++ have considerable advantages over their predecessors. There's less use of the old C-style idioms and the language is both cleaner and more powerful, which can make users more productive. "In the past, I've seen many people write their own smart pointers to manage resources. Nowadays there is no need to do this, one can rely on the C++ Standard Library," says Bilokon. He says the upshot is C++ has caught up with Python by introducing range-based "for" loops and powerful lambda expressions. "C++20 is all about modules, coroutines, concepts, and the ranges library."
While C++ isn't exactly taking over from Python in finance (there are currently 2,150 Python roles advertised on eFinancialCareers versus just 785 for C++), this does mean that the language is becoming easier to use and is venturing beyond some of its historic niches. Goldman Sachs, for example, is migrating its SecDB risk and pricing system away from its proprietary language, Slang, and is looking for people who can code in both Java and C++ to help make the transition. C++ is also well-used in analytics systems, site reliability engineering and for strats roles relating to pricing, risk and P&L calculations.
Python has become a necessary language to learn if you want a job in finance. However, while students everywhere are becoming minor Python coders, the fact that C++ is harder to master can be a differentiator when it comes to getting a job. At the same time, more recent versions of C++ are easier to use than those that came before. C++ 20 has improved support for large-scale dependable software, says Bilokon. "The light-weight abstractions promised by C++ are now easier to attain. These changes are driving a renaissance of C++ on Wall Street and in the City, and in high-frequency trading centres such as Chicago."
Have a confidential story, tip, or comment you’d like to share? Contact: [email protected] in the first instance. Whatsapp/Signal/Telegram also available. Bear with us if you leave a comment at the bottom of this article: all our comments are moderated by human beings. Sometimes these humans might be asleep, or away from their desks, so it may take a while for your comment to appear. Eventually it will – unless it’s offensive or libelous (in which case it won’t.)
Photo by Fleur on Unsplash