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.
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.
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?
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.
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.
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.
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.
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