".NET beats JVM any time"...

Discussion in 'Programming' started by quantkang15, Feb 10, 2013.

  1. was what I've been hearing for some time from quants. Recent graduate here, trying to decide which "ecosystem" to focus on for quant-like places.

    What do you people thin, which one is the most frequently used, JVM or .NET at the financial industry? JVM would include all languages running on it, like Java, Scala, Clojure, etc., while .NET the ones like C# and F#.

    Any personal views would be appreciated. :)
  2. 2rosy


    why would a quant write in dotnet or a jvm language? from my experience, they use matlab,python, R or something simlar.

    i do like c# or java as a language but linux over windows as an environment even more.
  3. It's 50-50 so who cares?
    C# and Java are almost identical languages. Learn one and you can program in the other with a few hours of feeling your way. So get familiar with both.
  4. hft_boy


    As far as I've seen, it's not really a question of language, since they are basically the same, but a question of platform. Windows or Linux? Windows people tend to use .NET, Linux people use Java.
  5. hftvol


    why would you prefer Linux over Windows as quant???

    As you said yourself as quant you are probably pretty remote from the coding intrinsic aspects of the business, plus you most likely do not need to deal with the live engine of any algorithms that may require an OS without the Windows overhead. Sometimes I get the impression some quants believe it sounds sexier and gives them more credibility when they say they work on Linux machines. Its a great OS to run a hft algorithm and architecture on but that is it!!! Why not going back to the late 80s and limiting ourselves to command line editors and compilers. Why being stupid and taking advantage of the best development environments which are run on Windows platforms (while programming code that runs also on Linux machines).

    Linux gives you NOTHING except a leaner engine when you actually run uhft algorithms. Please make your case if you disagree.

  6. hftvol


    "Linux people"? You mean nomads and those stuck in the 80s among the few that actually require a lean OS to take advantage of microseconds? I just do not see it. But I am curious to learn.

    I myself work in a way that I define my targets and goals and as a function of that decide on the best tools to be used. Other than running ulta high frequency algos Linux does not even co-exist in my universe. What for?

  7. Leaner engine is important all on its own.

    Also, Linux is open-source whereas Microsoft is proprietary and closed. There can be unsolvable Windows bugs (I have seen some) that can affect reliability.

    "Support" from Microsoft is not enough because they will wash their hands of some situations. So there you may be, crashing away and you cannot solve it yourself because you have no source. Not a good dead-end to be in. And I have seen it happen. All you can do is guess at what might be wrong and try different combinations of hardware.

    Also Linux runs on far more hardware architectures.

    Also it is not just Linux. If you develop on Unix, it is easy to port to Solaris, HP-UX, AIX etc., all of which have Linux-compatibility features.

    Also Linux is more reliable.

    Fewer viruses.

  8. hft_boy


    Haha. I guess I'm mostly used to working on Linux, so I don't know all that .NET has to offer. But the gcc toolchain is quite robust and useful. For me personally, command line tools give a huge boost in productivity over GUI crap. Also there's the capability of tuning the kernel and stuff if need be. Not that it needs to be done every day (if at all) but it lets me sleep a little better at night if you know what I mean.
  9. heech


    I personally have a hard time with the assertion that Windows has a better development environment. I think the *nix ecosystem is far more powerful and sophisticated on every level. And from a stability point of view, I regularly use *nix systems that are >20 years old without any issues, and can stay logged in (forget rebooting) for months/years at a time.

    That said, I agree with the earlier poster that said learn/use both. Both are very similar, and both have their uses. You will come across some platforms with Java-based SDKs, and some with Net.
  10. For starters, you need to define what you mean by quant. Traditional quant work (read: not hedge fund or HFT, but pricing, modelling and risk, research) tends to be performed using Matlab, R, Excel-VBA (!!!), Excel-C++-XLL. Analytics libs tend to be written in C++, although things are changing with GPUs doing a lot of the grunt work these days (CUDA, OpenCL, C++AMP). And there are hybrids too (Java - C/GPU at JPM risk).

    In the hedge fund world, and particularly for HFT shops, it is difficult to replace certain low-level components written in C/C++, however, these days there is a lot of work (if not most of the work) been done in Java and C#. The dinosaurs are still pure 100% C++ shops, the smarter ones have figured out something called productivity.

    And then there are places like Jane Street which use Ocaml extensively...

    I know a few quant traders who use Python with Pandas... but I digress.

    There is no simple answer to your question, and these types of questions normally give rise to "programming language religious wars" which are best avoided. And let us not forget OS wars...
    #10     Feb 14, 2013