Discover your dream Career
For Recruiters
Do you really want to learn it?

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. 

Photo: Getty 

Have a confidential story, tip, or comment you’d like to share? Contact: sbutcher@efinancialcareers.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.)

author-card-avatar
AUTHORSarah Butcher Global Editor
  • Ri
    Richard Lucas
    28 August 2019

    I went over to the website and checked out the tutorials. Right away you notice that A+ uses weird characters you normally wouldn't see outside of a binary string. And, the tutorial code containing unconverted, weird characters breaks the page rendering in the browser. The documentation can't be read. You have to look at the page source! All signs point to half-assed, and so that's a big NOPE.

  • Ze
    Zeb Mason
    28 August 2019

    A single line of A+ can accomplish 50-100 lines of C++. Well I'm sure I've done better in C++ by writing library functions...

    So is A+ just another DSL or is it supposed to be general purpose like C, C++, Fortran, Cobol, etc.?

    I used to program in AGA which came out of Cambridge University and was K&R C with extra bits. Of course I only used it in one job and have never seen it since and it is probably the case that C11 is a much better option.

Apply for jobs

Find thousands of jobs in financial services and technology by signing up to eFinancialCareers today.

Boost your career

Find thousands of job opportunities by signing up to eFinancialCareers today.
Latest Jobs
Bloomberg
Eng Program Manager- Application Frameworks
Bloomberg
New York, United States
Java OMS Developer
Jersey City, United States
Senior Developer C++
New York, United States
Ameriprise Financial, Inc.
Regional Annuity Sales Consultant
Ameriprise Financial, Inc.
Minneapolis, United States
Amber Group
Quant Researcher - US
Amber Group
New York, United States