My friends working in JP Morgan told me that the quant team there program mainly with C# and JAVA, instead of C++. Is there any trend towards this transition in other companies?
C#, no question about it.
But Mark Joshi *halleluja* when confronted with the same quesion simply answered "there are more jobs in quant for C++ programmers"
Here's reference for a quick start tutorial.
http://www.c-sharpcorner.com/Upload...utorial1AN11282005015140AM/CSTutorial1AN.aspx
My personal feeling is don't be too confident if you've finished one course in C++. It's kind of like taking one 3 month karate class, you feel bad ass but you really aren't ready for a fight.
C#, no question about it.
starting a new project is definitely easier in C#. Development will be a lot quicker and bug fixing is a lot easier.
From someone much wiser than me :
"I've spent alot of time benchmarking C++ vs. C# in a gazillion different ways and, to sum it up in a nutshell, there really isn't any advantage C++ has in the enterprise. C# beats C++ hands down.
Enterprise programming is about productivity, maintainability, stability and ease of use. There's no way a good C++ programmer can beat a good C# programmer in the above criteria.
People used to think the advantage of C++ was speed and that if they used c++ they were really clever and "hardcore".
But with the advent of 2.0 the compiler has made a huge leap. As a matter of fact, we created several benchmarks where compiler optimized C# beat compiler optimized C++ speed wise (processor dependent). (And it makes sense why this should actually be so)."
It all depends which kind of enterprise application we are talking about. If it is Systems and IT, maybe C# and Java might be all those things but they are not faster. For domain specific applications, C++ will still have a leg up in terms of speed.
By the way, I really don't know which benchmarks you ran but as far as the language shutout is concerned (these are well known algorithms) C# comes way behind C++.
C++ GNU g++ benchmarks | Gentoo : Intel® Pentium®*4 Extra!
C++ Intel benchmarks | Gentoo : Intel® Pentium®*4 Extra!
True, unmanaged C++ code doesn't compile into MSIL/CIL byte code.
Anyway, back to the point of discussion. My personal view is that C# will dominate as a first choice application programming language in years to come and soon C++ will relinquish its throne. C++ will still have its niche in embedded systems / hardware drivers / game & operating systems programming, but its complexity brings out too many non-implementation related problems for application programmers. Certainly good design diminishes/eliminates these concerns. But still, you don't play soccer with a rugby ball (although you can). IMHO it's easier, faster and safer to write your code in C# as opposed to C++.
IMHO Java is not well-suited for application programming, although it presents itself as a good platform for mobile/network/web programming. I was particularly stressing application programming area.I could say the same thing about Java.
My point was not to bury C++ and call up everyone to switch languages. I'm simply observing that trend as an impartial programmer.
Business community seems to be the most reluctant to technological changes (i.e. COBOL): once they pick a "standard", they seem to stick with it in for a while. In that sense, I believe C++ is still a young "standard" and it will be widely used for at least another 15-20 years. The same cannot be said about the mainstream programming though...
However, we're a part of business community, so let's stick to our "standard". There's no point of arguing whether that language is better or another, there's simply demand and supply.
IMHO Java is not well-suited for application programming, although it presents itself as a good platform for mobile/network/web programming. I was particularly stressing application programming area.
What do you mean about application programming? In my company, my group and the group next to mine (we are very close), all the back end processes are written in Java, Python and R. The main pricing libraries are written in C++ or something written in C++. Even some of the heavy linear algebra is written in Java. C# is marginally used for front end apps that need deployment directly into a PC but we are moving to a Web front end solution for our traders. Our internal Risk Models are written in R and the re-valuation and risk engines in Java.
The main thing is that we ar a UNIX shop so C# won't be coming in anytime soon. BTW, I work for a big outfit.