• 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!

Best Programming Language for Finance

C/C++ are FAR FAR AWAY from vector/list based and definitely not functional programming paradigm in there either.
Not implying they are, although I see how what I said could be misleading.
 
Fortran is a waste of time, I've never heard of it used, which means that even if it is its uses are fringe.

I'd say you're quite wrong here. There exist lots of high quality numerical codes written in Fortran, still unsurpassed by anything written in C or any other language. And there are new developments in Fortran too, enough of a market that there are dozen or so companies fighting for it with high-quality Fortran compilers (Intel, Portland Group, PathScale etc., as well as compilers from HPC vendors, like IBM XL Fortran). The Fortran standards group is very active too, so nowadays the language is pretty much on par with other modern imperative programming languages with regards to programming constructs etc. Heck, even for CUDA GPU programming Fortran is the only language supported (http://www.pgroup.com/resources/cudafortran.htm) well enough, besides C. So - overall it's sort of niche language admittedly, one that you wouldn't encounter everyday, but still trust me that a programmer involved in Fortran work could make for a much better living than with most of other programming languages.
 
I'm kind of surprised at a couple comments here. Coming from an IT background, C# and .Net seem to me to be very popular / ingrained languages/technologies. There are a few .Net wrappers for CUDA/OpenCL now, and additionally, (and more relevant fo the later posts here), I believe there is a Fortran.Net option. I can't comment on how popular it is, but a quick google search suggests that it's still alive and kicking.

I know a few people currently (or recently finished) who were still doing their PhDs in finance and/or computational biology problems, coding solely in Fortran, which surprised me at the time I found out, but I was quickly assured that Fortran is still a relevant and going concern.
 
There are a few .Net wrappers for CUDA/OpenCL now...

Just to clarify my previous post a bit: There are two aspects of CUDA/OpenCL programming. On one side, there are always pieces of code to be written that are going to be executed on CPU - this code is for copying input data into GPU memory, specifying GPU execution configuration, launching the code that is going to be run on GPU, then typically waiting for the code executing on GPU to complete and finally gathering results back from GPU memory. Other, much more important and harder to write code, is the code actually executing in parallel on GPU - these pieces of code are knows as "kernels" in GPGPU terminology. Now, there are indeed number of solutions their authors call "CUDA/OpenCL wrappers", for various programming languages. However, these are making it possible only to wrote these segments of code that are going to be executed on CPU in given languages (like Python, C#, or say Mathematica in version 8.0). On the other side, to the best of my knowledge the only languages that could be used in writing GPU kernels are C (and C++, up to some extent) for both CUDA and OpenCL kernels, and Fortran for CUDA kernels. So all of these CUDA/OpenCL "solutions" advertising "support" for various programming languages are largely irrelevant actually - pieces of code that could be written this way are typically 5% of the total development effort, also mechanical work that for example I use just to copy, with small modifications, from project to project. For serious part of GPGPU work, you just have to dig down into C or Fortran.
 
Disclaimer: I haven't gotten my hands dirty with any OpenCL/CUDA yet. Other than few very basic demos, and reading up a few online tutorials etc. Oh to live a dozen more lives, and have the free time ;)

@cgorac: But that said, I think you are correct. It's my impression that the kernals are still very much the territory of C/C++. My comment about the relative popularity (or lack thereof) of C# was more due to earlier posts where some of the guys hadn't necessarily heard of .Net, which I found kind of weird because its so big in particular fields. I guess its that "living in your own little bubble" phenomenon... everything seems important until someone points out that they've never heard of you ;)

The .Net wrappers appealed to me during my quick research phase, because I thought/hoped I could quickly access the raw GPU power, and the ease of C#/.Net. On closer inspection, you come to realise that being able to restate classic problems in a form suitable for parallelisation is a big current research field, one which I would devote at least 2 of the aforementioned lives to ;) And so long story short... nothing comes for free - Including GPU multi-core processing.
 
I'd say you're quite wrong here. There exist lots of high quality numerical codes written in Fortran, still unsurpassed by anything written in C or any other language. And there are new developments in Fortran too, enough of a market that there are dozen or so companies fighting for it with high-quality Fortran compilers (Intel, Portland Group, PathScale etc., as well as compilers from HPC vendors, like IBM XL Fortran). The Fortran standards group is very active too, so nowadays the language is pretty much on par with other modern imperative programming languages with regards to programming constructs etc. Heck, even for CUDA GPU programming Fortran is the only language supported (http://www.pgroup.com/resources/cudafortran.htm) well enough, besides C. So - overall it's sort of niche language admittedly, one that you wouldn't encounter everyday, but still trust me that a programmer involved in Fortran work could make for a much better living than with most of other programming languages.
http://seeker.dice.com/
http://seeker.dice.com/
http://seeker.dice.com/
Meanwhile
http://seeker.dice.com/
http://seeker.dice.com/
http://seeker.dice.com/
http://seeker.dice.com/
I rest my case.
 
There's legacy code in C++ and maybe some inertia among people as well that makes them partial towards it.

Yes and no.
Some systems can only be written in C++. And there are systems that you would never develop in C++.

And C++ legacy systems pay the rent and school fees :)
 
This article has some questionable statements in it. In all my years as a programmer, i'v only met ONE person who has ever started coding while in middle school. So the statement "They typically started before high school — sometimes before middle school " to me is baffling.
You are taking that sentence out of context:
-- "The right sort of person is so passionate about coding, they can’t be stopped from doing it. They typically started before high school — sometimes before middle school — and never looked back. They write everything from assembly to jQuery, on PCs to mobile phones, doing hard core computer graphics to high level social networking. They’ve tried everything." -- is referring to a subtype of coders, namely the hardcore hackers of the world. Those who have a passion for this sort of stuff. Where the generalization of coding in middle school is quite accurate.
 
The name of the article is a bit misleading.
Should be something like "Why we don't hire one trick ponies".
 
This article has some questionable statements in it. In all my years as a programmer, i'v only met ONE person who has ever started coding while in middle school. So the statement "They typically started before high school — sometimes before middle school " to me is baffling.
I did HTML in 5th grade. Not really "coding" per se.

And then I avoided any type of programming for the longest time. I'm not even close to a hardcore hacker.
 
Ihate silly rants like this article on .NET . It smacks of the language wars you read all the time. C# is used a lot and by seasoned developers, quants and traders.

It's almost as silly as which is the best Excel add in.
 
I did HTML in 5th grade. Not really "coding" per se.

And then I avoided any type of programming for the longest time. I'm not even close to a hardcore hacker.

I was "playing" around with logo before I could hold a pencil and had moved on to Pascal before I was 8 (circ. 1987).

Then that whole internet superhighway thing happened.

Would say my biggest regret was not sticking with it (mostly due to lack of opportunity/availability, at the time) and a 20-year hiatus.

I don't think the middle-school statement is so unreasonable.....
 
Hello,
Just finished reading this topic. I have questions: What type of C++ and platform quants usually use at work: Visual C++ for Windows or for UNIX, Linux, Free BSD etc? What library, templates do you use? Do you have special IDE's for quants? How about SQL, if yes which one? Do quants develop complete huge 3 tier architecture solutions or they just create small modules for it?
Thanks!
 
Back
Top