C vs Java programming for IB

Discussion in 'Automated Trading' started by thesharpone, Nov 17, 2007.

  1. segv

    segv

    Why write a socket implementation when there is a nice class implementation already? My point about the platform being written in Java was that the marginal performance gain would not be worth the effort.
     
    #21     Nov 18, 2007
  2. Corey

    Corey

    Because it's only one class in your entire platform. If you are comfortable writing a socket implementation in your language of choice, the rest of your development will most likely go a lot smoother than if you had to write the rest in a language you were not comfortable with.

    And if you aren't comfortable enough to write your own socket implementation, you probably shouldn't be writing an automated trading system.
     
    #22     Nov 18, 2007
  3. segv

    segv

    I am so sick of hearing this boilerplate argument. These applications are nowhere near real-time, they are vanilla preemptible user-mode applications. Market participants are globally distributed with latencies from 5ms to 300ms. What makes you think that there is any information of value embedded in data at the sub-100ms scale?
     
    #23     Nov 18, 2007
  4. segv

    segv

    You think that there is a big learning curve for C++ programmers switching to Java? I picked up Java in about a day and was writing production quality code in about two weeks. If you think that writing a socket-based implementation in C++ will be easier than using the IB Java API, well you just enjoy that smooth hit off the crackpipe if it makes you happy.
     
    #24     Nov 18, 2007
  5. segv

    segv

    You like to drown kittens, don't you? I love C, but it is anything but perfect.

    And then it would crash since most programmers cannot code their way out of a wet paper bag.

    JOS
    JNode

    Thats two.

    The best software engineers I have ever worked with are all from India.
     
    #25     Nov 18, 2007
  6. Are you kidding me? 100ms is eternity in today's market. When you are sitting on Java & IB market data you are the last person on this planet that sees the quotes when market starts moving rapidly (Feds or big news in the stock). If you cannot benefit from it doesn't mean nobody can.

    Trading floors are ghost towns, 80-90% of all flow is electronic, and you compete against co-located algos & OMS. Go and figure about who's gonna win.

    C++ vs. Java is an endless war. Its not the question what I like or hate. Both languages have their own domain. C++ is just better suited for high-frequency equities/options ATS or marked data feed handlers. For those who disagree I advise do more research (get more experience in this domain, or ask friends in big houses). Some just afraid of admitting their own errors...

    BTW, no offense, but software engineers from India are worst engineers in todays' marketplace. Again, no offense, just the voice of extensive experience.
     
    #26     Nov 18, 2007
  7. Corey

    Corey

    When did I ever say that? I, personally, don't enjoy programming in Java. I don't like being forced into OOP practices and standards -- I like to choose my own paradigms when designing my solutions. But this isn't a language war, which you don't seem to understand. This is a programmer efficiency war. Programmers are always more efficient in comfortable territory. If the OP is more comfortable in C, I see no reason why he shouldn't use the C++ API, compile with a C++ compiler, and just write C style code.

    By the way, it is no great feat to write 'production quality code' -- for most industries which are driven by deadlines, production quality is fairly low quality, filled with acknowledged bugs, hacked code, and poor design structures.

    Anybody with basic C or C++ syntax knowledge can pick up most C-style derivative languages fairly quickly and be proficient at a beginner level. Truly understanding the intricacies of the language, and understanding how code was MEANT to be written in that language, however, does not come in just a couple weeks.
     
    #27     Nov 18, 2007
  8. why am I not impressed?

    "The author was unhappy with the amount of C and assembly language required and moved on to a new attempt called JBS2. JNode is the third attempt, first introduced in 2003. JNode uses only two languages, Java and assembly."
    http://en.wikipedia.org/wiki/JNode

    "The Java virtual machine runs on top of the microkernel."
    "All device drivers are written in Java and executed by the virtual machine."
    http://en.wikipedia.org/wiki/JavaOS

    "The Kernels

    JOS has 2 1/2 kernels under development. These kernels are:

    * JJOS - decaf's interface to hardware.
    * RJK - microkernel for KernelInterface.
    * SimpleJOS - a hacked linux/freebsd "barebones" kernel with jvm (under discussion) "
    http://jos.sourceforge.net/html/KernelSummary.html

    a Java OS on top of a mini jvm on top of a mini kernel, wow now I'm impressed, isn't that efficient?!

    You could do the same with almost any other programming language, if you put enough time into it. C isn't the only language you can write a kernel and OS with, anything close to assembly and in clean design will work.

    My main point wasn't to insult indians or something, I'm sure they have good programmers, I was mainly saying;

    "There are thousands of programming language and new ones are created every year. Few languages ever become sufficiently popular that they are used by more than a few people"
    http://en.wikipedia.org/wiki/Comparison_of_programming_languages
     
    #28     Nov 18, 2007
  9. Gustaf

    Gustaf

    If you wanna pay TAX on your cpu cycles then Java. If not C++

    :)
     
    #29     Nov 18, 2007
  10. Much cheaper than paying development time tax.
     
    #30     Nov 18, 2007