SERVING THE QUANTITATIVE FINANCE COMMUNITY

 
User avatar
JT77
Topic Author
Posts: 38
Joined: November 27th, 2011, 7:07 pm

Best programming language for quant/High Freq?

November 29th, 2011, 11:11 pm

Which of the big 3 languages (Java, C++, C#) do you think gives the greatest overall prospects for a technical career in finance? Ideally i would love to work in HF, which suggests C++ would be the best language, followed by Java and then C#. However, I hear a lot of people saying C# is used more and more, some say Java isn't far behind C++ but all the job adverts I see seem to state C++ the best paid and Java prominent, but slightly less lucrative?
 
User avatar
quantmeh
Posts: 5974
Joined: April 6th, 2007, 1:39 pm

Best programming language for quant/High Freq?

November 30th, 2011, 12:55 am

pointless. you should know all languages.
 
User avatar
capafan2
Posts: 924
Joined: June 20th, 2009, 11:26 am

Best programming language for quant/High Freq?

November 30th, 2011, 3:12 am

Last edited by capafan2 on November 29th, 2011, 11:00 pm, edited 1 time in total.
 
User avatar
capafan2
Posts: 924
Joined: June 20th, 2009, 11:26 am

Best programming language for quant/High Freq?

November 30th, 2011, 3:12 am

QuoteOriginally posted by: JT77Which of the big 3 languages (Java, C++, C#) do you think gives the greatest overall prospects for a technical career in finance? Ideally i would love to work in HF, which suggests C++ would be the best language, followed by Java and then C#. However, I hear a lot of people saying C# is used more and more, some say Java isn't far behind C++ but all the job adverts I see seem to state C++ the best paid and Java prominent, but slightly less lucrative?If you are so fresh that you know all languages equally (or don't know them equally) then you will pick one based on what your job requires you too. Hey it might be Slang/SecDB for all you know (LOL). If that happens just tell yourself that it is functional and that you feel like a real hacker when you read in their documentation all about graphs and trees. And just by the way programming languages do not determine your wealth. I know some jokers who call themselves Enterprise Architects. All they know is how to draw boxes and connect them and they make good money (for now).
 
User avatar
Cuchulainn
Posts: 61537
Joined: July 16th, 2004, 7:38 am
Location: Amsterdam
Contact:

Best programming language for quant/High Freq?

November 30th, 2011, 4:14 am

Quoteyou should know all languages.And other paradigms besides OOP, e.g. Functional Programming languages like Haskell, F#, (Erlang, OCaml). And FP extensions to C++ and C#. Not sure if Java supports FP.
Last edited by Cuchulainn on November 29th, 2011, 11:00 pm, edited 1 time in total.
http://www.datasimfinancial.com
http://www.datasim.nl

Every Time We Teach a Child Something, We Keep Him from Inventing It Himself
Jean Piaget
 
User avatar
DominicConnor
Posts: 11684
Joined: July 14th, 2002, 3:00 am

Best programming language for quant/High Freq?

November 30th, 2011, 9:47 am

Which of the big 3 languages (Java, C++, C#) do you think gives the greatest overall prospects for a technical career in finance? Depends upon your risk/return utility (this is finance forum, if you aren't thinking in those terms about your career in those terms, you aren't ready to have one).C# is the safe short to mid term option, supply/demand is good for the developers who know it and appears to be getting better.Java has more jobs than C# or C++, I have said publicly and often that this will end really badly because supply is increasing faster than demand.But to get a job in a bank today the best skill to have is either C# or Java, not C++That's because if you put C++ on your CV, they will expect a higher level of skill than for a C# or Java programmer, there is a critical mass of C++ you need else you're more dangerous than useful. So C++ can get you a better job, but if you don't make the cut you fall between two stools.Of course the next variable is what job...Some HFT is done in Java but frankly not much and even where the people running the team ask for Java (rarely) they ask for C++ to prove you're "deep" and because they realise that hard programming will be necessary when Java gets pushed far beyond what it is designed to do.Some semi-automatic trading is done in C#, for various reasons that correlates with hedge funds, but the same interaction with C++ is to be found, more so since Windows is in it's heart a C/C++ O/S, actually any O/S you've ever used it written mostly in C, with C++ and C on top of the base. After C, the next most common language is assembler, though VHDL is lurking in the shadows. Java & C# are used for prototyping some strategies and for code that connects the Formula 1 HFT systems to the Range Rover general IT in the bankPrototyping however is more the real of Matlab, R, Python and Mathematica, and since you're asking about "technical" roles that's not so relevant to you.Of course a big risk term is that HFT is not politically popular which may affect your career prospects if it is regulated out of profitability and any given trading desk of any kind may at any time explode and die. Although I talk as if I know all the answers (I'm a quant headhunter), actually the most important terms are entirely unknown to me.Are you a much better programmer than the average, I don't mean top quartile, but at least top decile ?Do you know how operating systems work ?I don't much care if anyone taught you, but if your mindset hasn't already caused you to try and find out at a technical level then you probably won't prosper in this line of work.How many questionable things have you ever done to computers ?Hacking may be perjorative term, but how many times have you made a system do things it was not not designed to do ?The smaller that number, the less your chances.How are your maths ?
 
User avatar
katastrofa
Posts: 8955
Joined: August 16th, 2007, 5:36 am
Location: Alpha Centauri

Best programming language for quant/High Freq?

November 30th, 2011, 11:44 am

"Some HFT is done in Java but frankly not much and even where the people running the team ask for Java (rarely) they ask for C++ to prove you're "deep" and because they realise that hard programming will be necessary when Java gets pushed far beyond what it is designed to do."From what I heard, HFT in Goldman Sachs is mostly Java.
 
User avatar
Hansi
Posts: 3300
Joined: January 25th, 2010, 11:47 am

Best programming language for quant/High Freq?

November 30th, 2011, 12:00 pm

QuoteOriginally posted by: katastrofa"Some HFT is done in Java but frankly not much and even where the people running the team ask for Java (rarely) they ask for C++ to prove you're "deep" and because they realise that hard programming will be necessary when Java gets pushed far beyond what it is designed to do."From what I heard, HFT in Goldman Sachs is mostly Java.I get way more e-mails from headhunters offering interviews for Java base HFT roles than C++. Only one C# so far. The guys I know in algo trading (HFT and non-HFT) mainly use whichever language is most applicable for what needs doing largely it's about a 50-50 Java vs C++ split (small sample though) as a base with the niche languages taking care of specific tasks that they are better optimized for than using the base language.
 
User avatar
daveangel
Posts: 17031
Joined: October 20th, 2003, 4:05 pm

Best programming language for quant/High Freq?

November 30th, 2011, 1:27 pm

QuoteOriginally posted by: katastrofa"Some HFT is done in Java but frankly not much and even where the people running the team ask for Java (rarely) they ask for C++ to prove you're "deep" and because they realise that hard programming will be necessary when Java gets pushed far beyond what it is designed to do."From what I heard, HFT in Goldman Sachs is mostly Java.that explains everything
knowledge comes, wisdom lingers
 
User avatar
traderjoe1976
Posts: 1544
Joined: May 19th, 2006, 9:50 am

Best programming language for quant/High Freq?

November 30th, 2011, 3:03 pm

There is a definite trend toward Java for the following reasons:1. Java system performance has advanced so rapidly that it is currently indistinguishable from C++ in terms of system performance.2. Large number of Java developers easily available at 60% of C++ rates.3. Much easier to code and maintain Java as compared to C++ or C#.4. Easier to migrate to different platforms.5. Easy integration with other code libraries.6. FREE / Open Source platform.In the short term, the demand will be highest for people with skills in multiple languages / platforms to work on the migration projects.
 
User avatar
DominicConnor
Posts: 11684
Joined: July 14th, 2002, 3:00 am

Best programming language for quant/High Freq?

November 30th, 2011, 3:50 pm

1. Java system performance has advanced so rapidly that it is currently indistinguishable from C++ in terms of system performance.That's simply untrue, recall that I've developed code in Java,C++ and C# and I will share that Java ain't up to C++2. Large number of Java developers easily available at 60% of C++ rates.That's true, really true, so true that it forms a core of why I tell people that Java is not a good long term bet for their careers.Do you want to be one of these 60% people ?I was advising someone on the supply side of the equation what was good for them. If I had a project that inherently required a human wave of developers I might well pick Java, indeed I have in the past. Question is whether you want to be part of a wave.3. Much easier to code and maintain Java as compared to C++ or C#.Maybe so, depend what you're doing, would hate to do real time in Java. I know that TJ knows the difference between "fast" and "real time"...4. Easier to migrate to different platforms.Not sure why you'd care about that. Firstly, the % of in-house programs that migrate to a different O/S is really small, regardless of the domain. In HFT it is smaller still, not absolutely sure it ain't zero. Serious HFT is closely coupled to a platform.If you're writing GUIs to front end a large in house system you might care, but that ain't HFT at all.5. Easy integration with other code libraries.It is still the case that more libs you'd want to use interface with C++ than anything else at all and most importantly the operating system is a C/C++ environment. 6. FREE / Open Source platform.If you're in the HFT space I really can't even guess why you'd care about FREEThe most expensive bit of s/w on my PC happens to be the enterprise MS Visual Studio, I think it lists at 2.5K, but I can't bring myself to care.You may like VS or not, but let me share that if you're doing HFT you won't care about the cost difference between that and gccBut in any case, as above, gcc is a fully open source C++ compiler, rather more so than Java which has fallen under the cold dead hand of Oracle.You do know that don't you ?You also are presumably aware that Linux is a mix of C and C++ and given the desire of serious HFT people to get close to the metal it makes sense to have the same language throughout a project.A while back one of my gang explained how to do device drivers in C++, not because it's a rational thing to do, but because he likes showing off being able to do pointlessly difficult things.
 
User avatar
katastrofa
Posts: 8955
Joined: August 16th, 2007, 5:36 am
Location: Alpha Centauri

Best programming language for quant/High Freq?

November 30th, 2011, 4:10 pm

@DC"That's simply untrue, recall that I've developed code in Java,C++ and C# and I will share that Java ain't up to C++"When? Recently, or before switching careers to headhunting?
 
User avatar
quantmeh
Posts: 5974
Joined: April 6th, 2007, 1:39 pm

Best programming language for quant/High Freq?

November 30th, 2011, 5:25 pm

QuoteOriginally posted by: DominicConnor1. Java system performance has advanced so rapidly that it is currently indistinguishable from C++ in terms of system performance.That's simply untrue, recall that I've developed code in Java,C++ and C# and I will share that Java ain't up to C++it depends on application. if i were to write a large scale computation platform, i'd write it mostly in Java + isolated pieces in C/ASM.
 
User avatar
DominicConnor
Posts: 11684
Joined: July 14th, 2002, 3:00 am

Best programming language for quant/High Freq?

November 30th, 2011, 8:25 pm

katastrofa, I never stopped developing, it's a habit that's hard to kick.
 
User avatar
capafan2
Posts: 924
Joined: June 20th, 2009, 11:26 am

Best programming language for quant/High Freq?

November 30th, 2011, 8:26 pm

Somehow these threads remind of this hackneyed phrase attributed to Gandhi-"First they ignore you, then they laugh at you, then they fight you, then you win".And by the way the whole 60% thing is bull. The only reason some C++ programmers get paid more is because they have technical understanding that goes well beyond C++. If they are required to do the same thing in Java they would get paid the same. And Java has come a long way since 2000. Now there is Java NIO , Java Concurrency to name a few. There is even a Java Real Time version. Yes - I know real time is all about "predictability" and not "fast". And Real Time Java is about predictability. Just BTW I no longer revel as much in Java. I prefer Python. I only use Java for Hadoop applications. And Hadoop has a C++ port (Hadoop pipes) if that's what floats your boat.
ABOUT WILMOTT

PW by JB

Wilmott.com has been "Serving the Quantitative Finance Community" since 2001. Continued...


Twitter LinkedIn Instagram

JOBS BOARD

JOBS BOARD

Looking for a quant job, risk, algo trading,...? Browse jobs here...


GZIP: On