C vs Java programming for IB

Quote from Corey:

If communication is done via sockets, who cares what the platform was written in?

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.
 
Quote from 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.

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.
 
Quote from speculatus:


Java is a great language, but when it comes to near real-time trading systems, C++ is the only way to go.

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

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.
 
Quote from thesharpone:


C is close to perfect, it's also very close to assembly (& so machine code).

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

If TWS was written in C by good programmers it would initialize and run much faster than it's current speed

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

Name an OS written in Java, Java runs on a virtual machine that runs on an OS,

JOS
JNode

Thats two.

thanks for pointing it out, many on their path to a computer science PHD or masters program, thought of hiring an indian to develop a new programming language for them

The best software engineers I have ever worked with are all from India.
 
Quote from 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?

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.
 
Quote from 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.

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.
 
Quote from segv:

JOS
JNode

Thats two.

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.

Quote from segv:


The best software engineers I have ever worked with are all from India.

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
 
Back
Top