fbpx

Quant development: C# (.NET) in Investment Banking

(Last Updated On: May 31, 2011)

Quant development: C# (.NET) in Investment Banking

Looking through many job ads it appears that Java and related technologies seem to dominate the front office in the IB’s and hedge funds. Other than front end GUI stuff has C# (.NET) managed to take a hold anywhere in the industry and if not do you think it will make a meaningful entry into the industry to the point where you could say it’s market penetration is equal to that of Java’s?

 

—-

I agree entirely. I’ve been with .Net since 1.0, I am a massive fan of the whole .Net platform and the developer tools. But the fact that MS lost the battle for dominance in the datacentre effectively killed it as a first choice platform for anything server side.

Mono is an option, and it is oh so very easy to ensure you can cross-compile straight from Visual Studio, but despite the very best efforts of Miguel the uncertainty around its future makes risk averse IB decision makers wary of production deployment. I really hope that Xamarin (http://tirania.org/blog/archive/2011/May-16.html) proves a success because there has been some great efforts to get Mono (and Moonlight) out to the development community. The fact that you can use LLVM for code gen and JIT compiling makes me extremely confident of the performance potential too.

As it stands Java is easily the best choice for developers wanting to get into development for IB’s and other financial services organisations.

my experience of writing portable .NET code is very different. There is a very fine migration analyze (http://www.mono-project.com/MoMA). It is trivial to set up a Mono platform target in a VS project. I suspect the problems you have seen lie more in the system design and dependence on third party code than a difficulty in writing portable code per se.

I have a 32 project solution with 50k+ lines of code and I wanted to cross-compile the core server piece (5 projects). I was fortunate that the architecture is properly layered and the solution sensibly structured. I set aside a week for the port, it took me less than a day.

Of all the pitfalls you identify (all of which are very real and very nicely observed) it was the compatibility of external libraries that hurt the most. From those it was log4net that caused the most work, but I was looking forward to ripping that out anyway.

I’ve no doubt that a ground up approach to compatibility is the best way to ensure it is pain free, but it should not prevent developers or development teams working on existing software from trying the mono platform. If they heed your warnings it is certainly not folly

—-

So it seems that the major issue here is portability. That particular issue aside, is the .NET platform (including Windows) up to the Job and do you expect .NET/Windows based platforms to grow in popularity or is the industry mainly a die hard UNIX environment?

 

I see your point, it is a good one. I still believe that a well thought out approach to architecture and solution structure can mitigate the issues. Avoiding a GDI/WPF UI isolating native Win32 libraries, and handcrafting code rather than using every 3rd party lib you can find are also important, but then I think that was your original point :-).

“up to the job” is a very general kind of question to ask. There are just so many jobs and .NET / Windows is definitely up to most of them. But In my experience the people defining the strategic direction of a technology infrastructure inside IB’s abhor complexity. They are unlikely to recommend a new build out that has mixed platforms, and those that have them are likely planning a phase out of one or other of the competing O/S’s. In this day and age Windows tends to lose that battle, hence our focus on portability as a major issue.

Windows has a future in the office (desktop and server), but increasingly it seems marginalized in the data centers and co-lo’s of the world, and this is where the real money is being invested. That is not to say that good work cannot be done on the desktop, high performance UI and data viz tools (amongst other things) are still highly valued, but the penetration you originally questioned is unlikely IMHO.

In my experience C# is predominantly used on the client because:

1. .NET COM integration means that it works much better with Excel (and you can use a single debugger).
2. C# integrates much better than Java with Quant libraries through MC++/CLI & P/Invoke.
3. The GUI frameworks are much better that Java framework.

On the server-side the advantages of .NET have to compensate for some of the deficiencies of Windows {licensing; legacy; scaleability}. One irony of the C#/Java split is that it prevents tight coupling in the client/server integration

Looking too the future things are less clear:
• What impact will Oracles attempt to make money from Java have on its usage
• When will Microsoft licence .NET for other platforms (now that Win Server 2008R2 is good enough to compete with *ix on merit)

Best bet is to hedge the risk and work with both.. at least until new paradigms (cloud, hpc, Functional Programming (F#, Scala, Haskell)) change things again..

I  never suggested wrapping .net interfaces around a legacy COM interface, I was simply trying to answer part of the question about C# in Investment Banking.
In the derivatives front-office Excel is the killer app where pricing, hedging and flash P&L is matched with ticking market data, before booking in one or more trading system. Whilst Java has made big inroads in FX, bonds & IRD are often still priced in spreadsheets… I’m no big fan of Excel, but it is the corner stone that’s not going to change very quickly.

Whilst Excel is so important, C# & .NET will remain the no-brainer for custom front-end development for ticking trading systems. Sure SWT is much better than Swing, but lack of tooling and poor desktop integration make it a poor choice on the trader desktop.. unless server integration is more important (as in spot FX).

Look at the numbers: Oracle is not an industry benefactor; it didn’t buy Sun for the Hardware/OS business, it did it to make money – to make money from Java.. and until it does decide how.. there’s going to be a bit of volatility in the futures options..
Back on Craig’s question.. keep up the Java, but learn C# if you want to get into the front-office.

—-

I’m inclined to agree with Bryan’s sarcastic sentiment: for messaging, DB persistence and general application serving Java is a no-brainer. The reason the comments about C# have focused on GUI might be for fat client developers (I don’t do fat-client), but for me.. if the GUI’s not a big driver, or if you don’t need to integrate Quantitative Finance C++ libraries you wouldn’t probably choose .NET.

—-

Hi everyone,

i am biased towards Microsoft. I never worked with Java (and if i can avoid it i never will).
I am working in an investment bank in Greece. All our in-house and most of the 3rd party software is build on .net 2-4. This means Front office, middle office, back office.
All in-house trading platforms are build with .net 4 (c#,c++.net), c/c++,asp.net, WCF, win forms, SQL server 2008 r2 running on windows server 2008 r2 machines with Hyper-V.
All is running well and all that with a small group of developers an administrators. We had the last years always the top 1 position in Athens Stock Exchange in Stocks and Derivatives. The .net platform is in my eyes totally mature and can do anything that we have encountered so far with less effort than in Java as another colleague of mine did admit.

My 2 cents—-

 
first of all i don’t like the comment about being Greek very much.
You can comment about my skills and about the wrong choices but this has nothing to do with me being Greek. It is obvious that no one can understand you if your statements are of this kind. We are all professionals and there is always more than one solution on any given problem. Please keep your comments related to the subject and don’t use expression like that in order to be heard.

Can you at least point out what the (pun)Greek(pun) way is???
Please elaborate…

 

 

NOTE I now post my TRADING ALERTS into my personal FACEBOOK ACCOUNT and TWITTER. Don't worry as I don't post stupid cat videos or what I eat!

Subscribe For Latest Updates

Sign up to best of business news, informed analysis and opinions on what matters to you.
Invalid email address
We promise not to spam you. You can unsubscribe at any time.

NOTE!

Check NEW site on stock forex and ETF analysis and automation

Scroll to Top