best language for quantiative finance? C, D, Fortran,python etc.

Discussion in 'Automated Trading' started by Batman28, Jun 1, 2006.

which language..

  1. C, C++, C#

    40 vote(s)
    38.1%
  2. Python

    17 vote(s)
    16.2%
  3. Delphi

    6 vote(s)
    5.7%
  4. Java

    12 vote(s)
    11.4%
  5. Pascal

    3 vote(s)
    2.9%
  6. C#

    11 vote(s)
    10.5%
  7. D

    0 vote(s)
    0.0%
  8. Perl

    4 vote(s)
    3.8%
  9. other

    9 vote(s)
    8.6%
  10. your own..

    3 vote(s)
    2.9%
  1. newbunch

    newbunch

    Not a professional quant because:
    1. I don't have a PhD or anything like that which all the hedgies/institutions want.
    2. I don't want to spend all that time programming. I do all my quantitative analysis in Excel and am more interested in doing that work that programming my system. (I have to do some programming once in a while to implement my system, but it's still almost 100% quant analysis).
     
    #51     Jun 1, 2006
  2. segv

    segv

    You are making a lot of assumptions. For example, you are assuming we are talking about user-mode programs that are already memory resident and executing on the CPU. I agree generally that python, perl, java, and other interpreted languages can exhibit performance similar to a native program written in C/C++/Asm (in many cases for computation, etc). I agree that using those langauges can reduce development time in many cases. However, they simply cannot guarantee performance in real-time applications. If performance is essential, these languages could be the wrong tool.

    Python does have a lot of great libraries, and a lot of support from the academic community. Personally, I loathe Python, or any other whitespace delimited language for that matter.

    -segv
     
    #52     Jun 1, 2006
  3. True, that's why a very tiny part of the linux kernel is still done in asm. No defficiency of C or Python though.
    Don't like whitespace delimiting: go Ruby. Doesn't bother me at all.
     
    #53     Jun 1, 2006
  4. mrtwo

    mrtwo

    This should give an rough idea of where each language stand performance wise:

    http://osnews.com/story.php?news_id=5602&page=3

    Keep in mind that "raw performance" is just one part of this equation and that in the end writting smart code is what will result in good performance - in pretty much any language you choose.
     
    #54     Jun 1, 2006
  5. andread

    andread

    There is no wat Python can have performance similar to C/C++, specially the interpreted one. Just to have some examples:


    http://shootout.alioth.debian.org/


    I don't know about compiled Python, but I'm not very confident it can achieve a stellar performance

    Also, the only cases when a script language can reduce development times is for small applications, or scripts. Script languages like Python tend to be not strongly typed, exactly to reduce development time. As the complexity of your code increases, however, you will find yourself fixing a big amount of bugs every time you change the type of a variable, because there is no compiler telling you where the errors are.
    God bless generics in Java
     
    #55     Jun 1, 2006
  6. Recognizing your expressed reservations, your reference is most certainly not an example of "writing smart code". It would be typical of a stone-age programmer writing scientific/mathematical applications while being unaware of available math/science libraries that have evolved over the last 20+ years. In truth some of these libraries are available for C/C++ and Python, but can't be found for java and c# varieties.
    "Raw Performance" doesn't mean a thing for a knowledgeable programmer.
     
    #56     Jun 1, 2006
  7. nbates

    nbates

    #57     Jun 1, 2006
  8. Cheers to that. Loosely typed languages stink. For the life of me, I cannot figure out why you would want to switching between data types when calling functions. I've never found it to be a chore to think of what type my variables need to be.. and even if I do need to change the types of variables at some point in the future, or completely refactor my codebase, it is *extremely* easy and straightwforward to find all the impacts of that operation by using Eclipse's refactoring tools. Something I am not aware of for any loosely typed languages, where refactoring is unheard of.

    However, I don't do algorithm prototyping in java.. I have other tools for that, which dont fall under the broadly accepted definition of 'programming language'
     
    #58     Jun 1, 2006
  9. I've never had a problem calling C/fortran code from java and writing wrapper functions around them. I don't use java arrays for performance reasons, but 1.4+ has direct memory buffers.. blazing fast., just as fast as calling it from python/C/whatever.
     
    #59     Jun 1, 2006
  10. Yes, at Digital in the late 80's.
     
    #60     Jun 1, 2006