Best Programming Language for Finance


Every language has downsides and advantages over others. C++ is most powerful language and most widely used. That's what I meant. Take a look at quant developers' demand and you'll see that C++ programmers are of highest demand there. I also mentioned quant types. For HFT's C++ is mandatory (at least in most cases). And the frequency of use makes the language more and more proper for that field right?!
 
There's legacy code in C++ and maybe some inertia among people as well that makes them partial towards it. But I see a strong argument for Python, including its add-ons, Scipy and Numpy.
 
There's legacy code in C++ and maybe some inertia among people as well that makes them partial towards it. But I see a strong argument for Python, including its add-ons, Scipy and Numpy.

I'd say Python too. There are also softer languages which are highly used but "neglected" as benchmark. C++ and Python are complex which makes you dig into programming constructs while developing, other languages on the other hand let you concentrate on your deal (like mathematical complexities) while providing easier syntax and constructs in PL itself.
 
...C++ is most powerful language and most widely used. That's what I meant. Take a look at quant developers' demand and you'll see that C++ programmers are of highest demand there. I also mentioned quant types. For HFT's C++ is mandatory (at least in most cases). And the frequency of use makes the language more and more proper for that field right?!
IMHO, C++ is a pain in the a$$ to work with and I don't think is as widely use as you think. The issue at hand is there is a massive amount of legacy code written (mostly badly) in C++.
 
IMHO, C++ is a pain in the a$$ to work with and I don't think is as widely use as you think. The issue at hand is there is a massive amount of legacy code written (mostly badly) in C++.

I agree with the second part of the above statement. But as for the usage, I have read and searched for most widely used languages. The following output might be interesting:

Top-Programming-Languages-for-2011.png


But this is a for a rating for a general use, not just for the computational work. More surprising for me was that C# announced to be the most widely used language according to the survey of Computeworld in 2005:

1. C# – 72%
2. Java – 66%
3. Visual Basic – 62%
4. C++ – 54%
5. JavaScript – 50%
6. Unix Shell Scripts – 42%
7. Perl – 34%
8. C – 32%
9. PHP – 16%
10. Python – 8%
11. Delphi – 7%
12. TCL – 6%
13. Ruby – 1%
 
The statistics that would be really useful in this sort of discussions would be if people just state how many lines of code they actually wrote in programming languages they are talking about (usually in very abstract terms)...
 
The statistics that would be really useful in this sort of discussions would be if people just state how many lines of code they actually wrote in programming languages they are talking about (usually in very abstract terms)...

This is about the frequency of use not the summary of personal assessments. (if I got your point correctly)
 
This is about the frequency of use not the summary of personal assessments. (if I got your point correctly)

Frequencies of use, like one you posted above, are meaningless most of the time, and are always absolutely meaningless when there is no further info on what sort of sample is used to gather statistics.

But that was not my point. My point is that oftentimes in this sort of discussions, people jump in making bold claims say about which programming languages are used most, then about which language is "easier" or "harder" to learn, which language is "faster" or "slower", which language is more or less "powerful" etc. etc., and at the same time probably not having written any sort of significant amount of code in one or more of languages discussed. So I just stated that without knowing more about the exact experience of posters, these discussions just have no weight and could only harm poor soul that is seeking some sort of advice this way.
 
I completely agree what you mean. But
Frequencies of use, like one you posted above, are meaningless most of the time, and are always absolutely meaningless when there is no further info on what sort of sample is used to gather statistics.
Frequency of use can draw a general picture and it'd be better if we saw the frequency of use of languages in particular field. If for example Goldman, Citi, JP Morgan developer teams are using one language more frequently than other, it can tell us something about the usefulness, power of and demand for that language. As for the questions about the speed, flexibility, portability, power, ease, etc. of a language, they are absolutely normal and adequate questions to ask when you don't have experience in that language. If I knew how fast Python is why would I ask it again?! I think I got your point in your above (previous) post when said that the rating was not about personal assessments..
 
I'm partial to vector/list based and functional programming languages. It's so much easier to do certain things.
I like C/C++, R, q. Throw in some unix shell scripting and python for good measure.
 
8. C – 32%
9. PHP – 16%

I wonder what percentage of the PHP programmers are also developing in C. If I need to write PHP extensions I write them in C. I think the Zend framework was originally written in C.
 
I think PHP is a disaster but... that's a topic for another conversation.
 
I'm partial to vector/list based and functional programming languages. It's so much easier to do certain things.
I like C/C++, R, q. Throw in some unix shell scripting and python for good measure.

C/C++ are FAR FAR AWAY from vector/list based and definitely not functional programming paradigm in there either.
 
If for example Goldman, Citi, JP Morgan developer teams are using one language more frequently than other, it can tell us something about the usefulness, power of and demand for that language.

It looks you have never worked inside of a big bank.
 
As frequently happens when these kind of threads get created.....the discussion gets off topic. The guy comes from a Finance background (like me) and he is not going to do any hardcore maths or taking a quant position.
IMHO, learning C++ for a finance guy is a waste of time. Many people would disagree with that but that's the truth and I will prove you why.

1) You are not a programmer so you would be better off spending that time learning finance, econometrics,time series analysis,applied statistics or derivatives trading strategies!! That's your edge not programming.

2) You will use programming skills to complement,to combine your skills but you won't be offered a quant developer position in a fund.So your primary focus should be Econometrics and Finance. You learn Excel VBA or Python to add value to your finance knowledge and not to swtich your focus on programming (that's why C++ or hardcore programming languages would not be suitable to you)

3) THE RIGHT QUESTION IS NOT WHICH LANGUAGE IS THE BEST FOR FINANCE......THE KEY ISSUE IS WHICH LANGUAGE IS THE BEST FOR A FINANCE GRADUATE !!!!

4) Do not think that programming in C ++ or other complicated languages will prove you are intelligent !! this is often said by old style professionals or recruiters......You are intelligent when you prove you can do something good IN YOUR FIELD !!! A computer science graduate or a physics graduate will never have the knowledge you have about finance,trading strategies (Im not talking about HFT), or applied statistics as well as you won't be good at numerical methods as they are.

5) With Excel VBA, if correctly used, you can run practically almost all the analysis you want (hardcore maths included) but Python is increasing in popularity and I think that is a language worth learning. You want to consider SQL too (for database management)

6) Remember knowing a lot of things means you do not really master any! Stick to your field and become a master in your niche!!

The Eagle is a great and noble predator but it expresses its full power only when it flies. A shark is a very powerful animal but in the sea. The lion is a great fighter but in the savanna. Stick to your element and you will save a lot of time !!!

My 2 cents
 
I think PHP is a disaster but... that's a topic for another conversation.
I like it. If you think PHP is a disaster, don't go near ASP...
PHP is my choice for a small to medium size company language for making web functionality in.

As a finance major you are going to deal with a LOT of excel, so learn VBA within it and how to operate with it and write macros/functions.

As far as quants go, the best language is (by a wide margin mind you) THIS
 
I like it. If you think PHP is a disaster, don't go near ASP...
PHP is my choice for a small to medium size company language for making web functionality in.

Fortran is a waste of time, I've never heard of it used, which means that even if it is its uses are fringe. As a finance major you are going to deal with a LOT of excel, so learn VBA within it and how to operate with it and write macros/functions.

As far as quants go, the best language is (by a wide margin mind you) THIS

ASP is another disaster (at least it used to be).

Regarding FORTRAN, last year, one of my buddy's friend (they are both astrophycists) came to visit. He teaches at Ball State and he was explaining to me how most of the algorithms in that field are written mostly in FORTRAN. So, that language is still alive. BTW, my friend is a quant at Blue Crest and (following our recommendation) develops all the models they use in Python.
 
FORTRAN is huge in physics, especially particle physics. Cornell's particle accelerator team uses it, a lot of CERN's legacy code is FORTRAN although I believe some newer stuff is being ported/written in C++/C. It's mostly a physicists language as far as my experiences go.
 
learning C++ for a finance guy is a waste of time.

That's what I've been saying all the time. But knowing it can prove to be more powerful tool than other language. If someone switches from CS to pure quantitative finance, he/she will have more powerful too in hand if he/she knew C++.
 
Back
Top Bottom