The best coding languages for a career in quantitative finance
During a career in technology or quantitative finance, it is likely you will need to adapt to use a variety of different languages to put your ideas into practice, particularly if you are a trader looking to code your own algorithms. You may come across the dilemma of having to pick a language for yourself, your team or your organization to use. This is a tougher decision to make than may initially be apparent.
Picking a new language is a brave choice, easier to justify it provides a genuinely new programming paradigm, or it is your own language you are investing in, such as Python, which was supported by Google through much of its inception.
A sensible approach may be to identify all possible languages out there, evaluate the relative utility of each of them for your needs, and come to a final decision. If you are implementing low-latency/high-frequency trading algorithms, you may opt for C++ or Java to balance high performance with robust object orientation; if your needs are more in data science you may decide that Python is best with its large set of data extensions. If you have a need to produce an efficient database-driven web application, then C#/dot net may be the best choice.
The language may have already been decided by your employer, your client base, or the physical hardware you have access to. If it is a proprietary language, you may be fortunate to be able to evolve the tools you have to meet your needs, by adding extensions or integrating into other platforms.
Goldman Sachs and Morgan Stanley are known for having their own languages, Slang and A+, both completely different and both polarizing the opinions of those who used them, leading to people wanting leave to pursue opportunities involving more mainstream languages. I know of one Strat who left Goldman for Morgan Stanley for that reason, only to return within weeks after he found he liked A+ even less than Slang. It is certainly likely to be challenging if you have worked on a proprietary platform for years and seek to move to another firm, no matter how smart you are and how ground-breaking the work you have done. Alternatively, you may just find yourself going with something that is familiar to you, whether consciously or unconsciously.
If you are a long-standing C or C++ programmer then C++ is likely to be easy for you to justify with its backward compatibility and the benefit of many new features converging on other high-level languages. Generally though, style of the language elements you come across first, such as the print function and form or loop or variable declarations, may well have been influenced by earlier languages.
C# is a strange but useful language with its connectivity into various Microsoft technologies, but also is remarkably similar to Turbo Pascal from the late ‘80s/mid ‘90s, in no small way a result of Microsoft hiring Anders Hejlsberg, who was responsible for Turbo Pascal at Borland. Python is in many respects an odd- looking language with some issues around performance and robustness, and it may be that the aspects of it that made it feel familiar were the Monty Python quotes splattered around the code and its documentation. Its creator recently announced he will also be heading to work at Microsoft.
Ultimately though, large firms are investing heavily in the no-code area, so it seems likely that many of us will need to move to completely new platforms. The big question is where this no-code paradigm will take us. It’s likely that it will be a number of iterations before platforms emerge that can reliably replace all the topical programming languages and business application platforms.
Daniel Walker is the pseudonym of an experienced strat.
Have a confidential story, tip, or comment you’d like to share? Contact: email@example.com 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.)