February 9th, 2006, 4:46 pm
I agree with most of anamini's remarks, but the original question at the head of the thread was: "What do quants and traders see as the tradeoff of using C++ over other OO languages such as Java?" That's a topic that has generated a lot of heat in the past, but that doesn't mean it's not a reasonable question.My opinion, as a trader, developer and development manager, who has written production code in C++, Java and C# / VB.NET (which are pretty much "Java in Microsoft clothing"), is that the key pros and cons of C++ vs. Java-and-similar-languages are:Pros: big installed base of legacy code (at least in the finance / quant arena), maximum flexibilityCons: much more difficult to write robust, readable, maintainable, resuable code, particularly for newer or non-professional developersIn my opinion, the cons of C++ trump the pros for anyone who isn't "locked in" by the need to work directly with legacy code (i.e. modifying / adding to existing code, as opposed to just re-using existing libraries, which can usually be done from another language). It is certainly possible to write clean, clear, beautifully maintainable and reusable code in C++ - it's just a lot harder to do that it would be in Java, because the language and environment give you very little help. The problem is particularly acute for a semi-professional developer like your typical quant. It's kind of like trying to use a chainsaw to cut your food at the dinner table. It will definitely divide the steak, but it will probably also take a piece out of the table and maybe amputate your leg.