Take the 2-minute tour ×
Quantitative Finance Stack Exchange is a question and answer site for finance professionals and academics. It's 100% free, no registration required.

I'm curious about high performance computing and consider algo/program trading as an interesting source of information about what are performant technologies that are used to trade the markets.

Is scala being used out there? Is it a viable language for a startup prop shop? Would it be considered an advantageous language given it's more expressive syntax (and thus less code) as compared to java/c++ but be just as speedy?

share|improve this question
    
Most of the market data suppliers I've worked with supply C/C++ APIs and some provide wrappers - around this C/C++ API - for other programming languages. I would think most people would use C++ simply because it's easy to call into these APIs. –  bruce.banner Feb 16 '11 at 19:56

6 Answers 6

up vote 16 down vote accepted

EDF Trading uses it (or used it): http://cufp.org/videos/scala-edf-trading-implementing-domain-specific-language-derivative-p

In general, many financial institutions use functional programming languages. Andrei is correct in that they often are used to develop domain-specific languages (DSLs).

Some examples:

A "complete" list can be found by exploring proceedings from Commercial Users of Functional Programming workshop proceedings: http://cufp.org/conference

If you are smart about DSL creation, the programs you write can actually have better performance because you can perform smarter compiler optimizations (e.g., http://infoscience.epfl.ch/record/148814/files/paper.pdf)

One last note, since Scala targets the JVM, you could always integrate the Java and Scala code (or even make native calls to C++ code via the Java Native Interface).

share|improve this answer
    
Not exactly functional but K is used in finance as well. Discussions of its use in quant finance frequently pop up here: reddit.com/r/apljk –  isomorphismes Sep 8 '12 at 20:39

We can play these language wars until pigs fly, but there are a few very basic things that most people agree on:

  1. As has already been said, C++ is the standard language where performance is really important (and Java comes in second). An example of how this shows up: C++ is taught in the Wilmott quant finance certificate and in MFE programs. It also appears the most often in job postings.
  2. For other areas, where performance is the top priority, a wide variety of other languages undoubtedly get used. For instance, Jane Street is very public about their OCaml implementation. Many hedge funds use languages like R, matlab, and Python, even in their production environments.

Are firms using Scala? Probably. Do you want to become a Scala expert in the hope of using it in quantitative finance? Not a good bet.

share|improve this answer
1  
In point #2 above, I presume you meant "where performance is not the top priority"? I didn't want to just edit that, since it changes the meaning of the entire point. –  Louis Marascio Sep 9 '11 at 15:33

My company currently uses Scala for all new projects in algorithmic trading. We also have an internal portfolio management / monitoring application written in Scala (with Circumflex web framework).

share|improve this answer
1  
miriamlaurel.com = 404 –  isomorphismes Sep 8 '12 at 21:37

Empirics should count for something, and the (awesome) Language Shootout does show that C++ still very clearly dominates Scala in execution time and memory use -- though Scala looks better in code size.

Shops that have existing investment in Java like Scala as a next-generation Java given that the latter hasn't moved all that much of late. I also heard some startups betting on it. I am not in the Java camp, so my money is still on C++ (especially when performance really matters).

share|improve this answer
2  
To whoever downvoted: If you vote something, give at least a comment for your reasoning. It is the exchange of ideas and arguments that makes stackexchange what it is. –  Dirk Eddelbuettel Apr 2 '11 at 2:53

Yes, it's used. However its purpose for now is mainly limited by creation of Domain Specific Languages for prototyping because of easy integration with existing infrastructure in Java. Here Scala also competes with another JVM based language - Groovy and F# because of its relatively easy interaction with Excel.

share|improve this answer

To the best of my knowledge, there is no Scala implementation of execution platforms. C/C++ is still the language of choice for mission-critical financial applications, followed by Java, for those more recent shops that didn't have the burden of much legacy C++ code. I cannot imagine Scala taking hold, given that is slower and not nearly as robust as C++ and Java.

For UIs, everything is fair game, from Java to Python to C# to Ruby. But choosing the right language of a UI has never been the competitive advantage of any investment firm, I believe.

share|improve this answer
1  
Why is Java preferred in the unburdened new systems? –  isomorphismes Sep 8 '12 at 20:28

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.