Morgan Stanley's A+ programming language
Investment banks are nothing if not innovative. Decades ago, long before the likes of Java or Python were used widely, banks spotted gaps in the market and stepped in with their own programming languages devised to suit their particular needs. Goldman Sachs famously concocted 'Slang'. Less famously, Morgan Stanley concocted A+. - And, like Slang, it's still in use.
For those not famililar 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, the 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 to be, "utterly alien and incredibly powerful. - A single line could accomplish stuff that would take 50-100 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 an A+ anorak, you might not feel entirely happy if you find yourself in a Morgan Stanley role that involves a lot of A+ coding. - 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+; 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 are the legacy systems that 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. Needless to say, the bank struggles to recruit from a ready-made repositary of 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 being hired to code A+ for the bank, you might want to clarify the proportion of your role that will involve the language before you arrive.
Have a confidential story, tip, or comment you’d like to share? Contact: firstname.lastname@example.org 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.)