How dominant is Java / C # compared to C ++ in the financial industry?

I wanted to know how Java / C # scales compared to C ++ with reference to financial industry projects?

Thanks.

+4
source share
3 answers

Depends on the type of system. C ++ is traditionally associated with financial applications because people use it to code fast monte-carlo models for pricing derivative securities. It probably doesn't matter unless you are a quantitative analyst (quantum).

For a trading platform system or other transactional application, C ++ will certainly provide you with higher performance and transaction volume in less memory and processor. However, database and network performance is likely to be a limiting factor, and Java or C # can be scaled using cluster architectures.

Java and C # can pause garbage collection, which leads to dead spaces in your responses to application requests. These delays may not be acceptable for some applications (e.g., algorithmic trading platforms) that must support reliable real-time responses. In this case, C ++ allows you more control over this behavior and may be preferable.

Performing some quick searches on Jobserve for contract assignments based on the keywords "Banking" and "C ++", ".Net" and "Java" appears:

  • 60 matches for 'C ++ and Banking'
  • 128 matches for Java and Banking
  • 186 matches for .Net and banking

Assuming some correlation (1) between the number of job advertisements for contractors and the number of active projects (2), this can be used as an approximate metric indicating the relative prevalence of these platforms in active projects.

  • The relative accessibility of people with skills will also affect this - a set of assigned skills will mean that more tasks will be completed, and a skill set in deficit will mean that more positions remain open longer.

  • The banking and insurance industries have a long-standing lack of qualified personnel with industry experience, which is why there is a significant contract market in many skill sets.

+14
source

Obviously, it varies greatly in different companies / industries, but in my experience it roughly breaks down as follows:

  • Java for large enterprise systems, rear trading platforms, etc.
  • C ++ for low latency / high performance materials
  • C # for front-end / desktop applications

Java as a whole is the largest of the three, which makes sense as it is best suited for server-side cross-platform enterprise-wide enterprise applications.

The only area where Java / C # really doesn't work is very low latency, where GC pauses can be very problematic. You really need C ++ here (or assembler or some other language that allows you to get guaranteed real-time behavior)

Sometimes several other languages ​​appear (for example, Haskell for pricing models), but they are usually located in narrower / specialized domains.

I also experimented a bit with some of the new JVM languages ​​(e.g. Scala, Clojure). At the moment, it’s still quite small, but if you are looking for a place to develop your skills, I think this is a pretty good bet for the future, because they combine the advantages of the Java platform (where banks have a huge amount of investment) with much more modern / productive tongues.

+3
source

It really depends on the purpose of the application. Currently, many applications are based on web interfaces, and C ++ does not lend itself to this environment.

I agree with the other responder, but I would add that other languages ​​are becoming more popular for quants beyond because of the ease of coding and their ability to process data: R, Matlab, and Python in particular.

+2
source

All Articles