How Morgan Stanley Invented Its Own Programming Language

Investment banks are nothing if not innovative. Decades ago, long before the likes of Java and Python were used widely, banks spotted gaps in the market and stepped in with their own programming languages devised to suit their particular needs. For example, Goldman Sachs famously concocted ‘Slang’. Less famously, Morgan Stanley concocted A+… and like Slang, it’s still in use.

For those not familiar with A+, the language was developed at Morgan Stanley over 30 years ago by Arthur Whitney, a Canadian computer scientist who worked for the bank in the late 1980s. Whitney left Morgan Stanley in 1993 to co-found Kx Systems, a data analysis company now owned by First Derivatives, which runs the Kdb databases that underpin many algorithmic trading systems. A+ is seen as a precursor to K, the language behind Kdb/+Q, which was pioneered by Whitney after he left banking. However, while K and its successor Q are now used in thousands of applications globally, A+ doesn’t seem to have caught on much outside Morgan Stanley.

The lack of widespread enthusiasm for A+ is neither for want of trying, nor because it’s an inherently ‘bad’ language. Morgan Stanley open-sourced the language in 2001, and the A+ page describes it as a “powerful and efficient programming language” with a “rich set of functions and operators” that has “withstood the demands of real world developers over many years.” 

Early adopters found the language powerful; a single line could accomplish more than dozens of lines of C++. Recent Morgan Stanley users describe it as a “breath of fresh air” compared to Scala. But the open-source page devoted to A+ suggests there have been few public updates since 2008, when Neil Roeth, a developer who left Morgan Stanley in 2002, made a few tweaks.

All of this means that, unless you’re a huge A+ fan, you might not feel entirely happy if you find yourself in a Morgan Stanley role that involves a lot of A+ coding. Just like becoming a Slang expert at Goldman Sachs, developing a serious proficiency in A+ is a recipe for a non-transferable skillset. It’s just not used much elsewhere. 

Morgan Stanley declined to comment for this article. The good news is that we understand there are few (if any) jobs at the bank that are entirely devoted to A+. Indeed, most developers at Morgan Stanley work across a range of languages. We understand, too, that A+ only exists today in a few of the bank’s legacy systems; nothing new is being developed in it.  

Which legacy systems use A+? Try Morgan Stanley’s premier Swaps Trading System (STS), used to trade rate derivatives. STS was developed in A+ and is still in use today. As you might expect, the bank struggles to recruit A+ experts for the system, and therefore trains up developers with prior expertise in Java, Scala, C++ and C#.

Not all seem happy with this: “There was no C++, only A+ tasks,” says one quant developer who worked for Morgan Stanley in 2015, and who left again after a few months. If you’re hired to code A+ for the bank, you might want to clarify the proportion of your role that will involve working with the language before you arrive. 

This article originally appeared in eFinancialCareers.