What languages are programmers learning?

Discussion in 'Automated Trading' started by nitro, Aug 7, 2016.

  1. Simples

    Simples

    I've found ruby very useful for prototyping and rapid development. Don't need a GUI when you've got something like Notepad++, but there are ruby editors out there as well. Indentation doesn't mean squat as it should be. The language offer the nicest and cleanest syntax while being purely object-oriented. Everything is an object, offers reflection and most everything is modifiable. Modifying or replacing the String-class, or even the Class-class, just for fun and curiosity? You got it!

    Downsides include not very fast execution by intepreter, lack of types means everyone in the team needs to be excellent programmers or you need to be a one man show, and the mess that is Rails means the language is doomed to the fringes. No need to use Rails yourself, although ActiveObject is massively useful, can and should be included stand-alone.

    Despite some downsides, I've found the upsides makes programming fun again, and really really fast to get something working, while spending as little time massaging the language as possible, involving of course more danger of simple errors. However, ruby offers many coding patterns and libraries that simply eliminates alot of simple errors, so when ie. iterators are used instead of creating your own for-loops all the time, simple coding errors becomes less of an issue while logical errors become smaller and fewer.

    Seems Python is getting traction these days. Go is more of an infrastructure language. Functional languages like Clojure might be interesting, but not if they interfer with how complex I can make my algos (hey, just let me shoot myself in my foot, won't ya!). Avoiding imperative forms have many advantages though, but the second you need mutation, it's a huge pain. If anyone has some tips to make me see the light though, that's cool (ie. Haskell?).

    At some point I will need to refactor into new clean code as now it's a prototype involving many different languages and technologies, even Excel! (brr). C++ might be the choice due to bare metal speed and possibility to extend into intraday analysis. Python interesting due to momentum. Functional might be interesting due to possibility for cleaner logic.
     
    #11     Aug 8, 2016
  2. jcl366

    jcl366

    Python is in fact a fine language, syntax-wise. Only problem is that it is just too slow for many programming tasks, that's why C++ is normally used for serious projects. A trading strategy in Python looks a bit nicer than the same strategy in C++, but runs 30 times slower. Not good for backtests. Certainly not for HFT.

    If you're a programmer, it does not matter anyway which language you use. You must be able to work with all languages.
     
    Last edited: Aug 8, 2016
    #12     Aug 8, 2016
  3. marsman

    marsman

    I would suggest to specialize in only 1, or max 2 languages because nowadays the supporting libraries (for example STL, boost) are so huge...
    IMO one should aim to be expert in just one language of his/her choice...
    For me C++ is the best language for every kind of projects...
     
    #13     Aug 8, 2016
  4. I can't see C and C++ disappearing from the fast and system areas any time soon. Or Java or JavaScript from their areas. C for me.

    Functional languages still seem academic and specialist.

    Go for its space seems to be rising and Rust might ultimately replace C++ and maybe C with the extra safety .

    I really like Python and dislike R. Python can be rather faster than most expect in the analysis space with PyPy for a general 5-7 * speed up, Pandas for datagrams, Numba for C like speed in numeric processing . Generally you can write without concern for speed and speed up with the above or Cython as needed .
     
    #14     Aug 8, 2016
    aex likes this.
  5. nitro

    nitro

    #15     Aug 8, 2016
    Simples likes this.
  6. Humpy

    Humpy

    Noone mentioned MT4 language ?
    Widely used in Eastern Europe and free.
     
    #16     Aug 8, 2016
  7. Because it's a toy and only has application within the MetaTrader platform which sucks.
     
    #17     Aug 8, 2016
    eusdaiki likes this.
  8. 2rosy

    2rosy

    i like the duolingo.com app. very good
     
    #18     Aug 8, 2016
  9. nitro

    nitro

    Scala is being used in algorithmic hedge fund and prop-shops. F# as well. It should be obvious to a professional programmer why pure functional languages are so desirable when a computer can send 100,000 orders a second. May you vaya con Dios if you get it wrong.

    To me, there is no getting around C++14 for HFT that doesn't run on an FPGA. Everyone that programs these systems knows why. You can do it in pure C, but the managing of pointers by hand is cumbersome. C++ std::unique_pointer and move semantics are YUUUUGE.

    Semantics, as Paul Graham has stated repeatedly, is more than syntactic sugar.
     
    Last edited: Aug 8, 2016
    #19     Aug 8, 2016
  10. 2rosy

    2rosy

    agree with others who mentioned https://golang.org/ but it depends on what you're trying to accomplish
     
    #20     Aug 8, 2016