• C++ Programming for Financial Engineering
    Highly recommended by thousands of MFE students. Covers essential C++ topics with applications to financial engineering. Learn more Join!
    Python for Finance with Intro to Data Science
    Gain practical understanding of Python to read, understand, and write professional Python code for your first day on the job. Learn more Join!
    An Intuition-Based Options Primer for FE
    Ideal for entry level positions interviews and graduate studies, specializing in options trading arbitrage and options valuation models. Learn more Join!

Why Java would be used over C++

Joined
12/21/11
Messages
5
Points
11
Some relevant links, can be found here, and a more general one here.

I can see some new prop shops opening up that use Java as their primary language of choice, over C++. Based on my research, these companies seemed to have chosen Java simply because their developers were most familiar with the language.

But are there any real advantages that Java has over C++?

(I came to the inevitable realization that my previous post, which can be found here, would not help me gather basic views about Java in finance, so this post was my attempt to appeal to a more broad audience).
 
From techincal point of view both are turing complete so there are no advantages in terms of ability to do something in one language while it's impossible to do in other. However, there are lot of things in Java world to maintain code easier and speed up development which allow your to reach market faster in comparison with C++.
 
In terms of system performance and speed, they are identical. Java is much easier to code and maintain. It is not just the newer prop shops which are using Java. Goldman-Sachs has migrated their entire HFT system onto Java platform. This is likely to be the trend going forward.
 
From techincal point of view both are turing complete so there are no advantages in terms of ability to do something in one language while it's impossible to do in other. However, there are lot of things in Java world to maintain code easier and speed up development which allow your to reach market faster in comparison with C++.

C++ is a multi-paradigm interoperable language while Java is a OS-independent pure OO lanuage.
 
C++ is a multi-paradigm interoperable language while Java is a OS-independent pure OO lanuage.
Although this is completely true, in real life you end up using only a subset of the language because of the level of complexity you have to deal with.
 
Although this is completely true, in real life you end up using only a subset of the language because of the level of complexity you have to deal with.

Many developers end up using a single paradigm.
 
From techincal point of view both are turing complete so there are no advantages in terms of ability to do something in one language while it's impossible to do in ...
Being Turing Complete does not say anything about ability of the language, in terms of possibilities. It only implies that any function can be calculated given input. There is actually quite a bit that can be done in C/C++ (mostly lower-level stuff) that would be virtually impossible to achieve with Java....
 
The issue is "can this language help me express what I want the computer to do ?"
 
There are some advantages. What exactly are you trying to accomplish? what kind of answer are you looking for?


Based on some of the responses here, my suspicion is that Java, despite its relative ease of development and maintenance, will fall back in comparison to C++. I would really appreciate it if you could outline some potential strengths that Java has besides these two factors. If I had extensive knowledge of C++, I'd be able to make a proper assessment, but I haven't done any C/C++ development outside of college. So thanks a lot for your help!

After I get a better gist of what the general sentiment is towards the language, I'm going to try and contact some recruiters in Chicago to ask some informed questions about job hunting as a Java developer. I hope to post what they say here so that others with my background could use this information to evaluate whether transitioning into finance isn't too much of a gamble.

The issue is "can this language help me express what I want the computer to do ?"
That's an interesting point of view I think. I wonder what the limits are, besides performance issues.
 
Being Turing Complete does not say anything about ability of the language, in terms of possibilities. It only implies that any function can be calculated given input. There is actually quite a bit that can be done in C/C++ (mostly lower-level stuff) that would be virtually impossible to achieve with Java....

This sort of points back to what Mr. Domini Conner mentioned. Java obviously has its limits in the "lower-level" stuff. But, considering the development requirements in a finance background, is this considered a problem?
 
The organization will tell you what you need to program in. Discussion of which one is better is irrelevant.
 
It takes much longer to become competent in C++ than Java. This could be a reason for choosing Java (or C# for desktop Excel-based applications.)
 
Back
Top