Quote from Rationalize:
The memory management argument is a ruse. GCs stop everything and their timing is unknowable. So, your real-time trading system will PAUSE from time to time, to release out of scope objects. That's a bit of a pisser when you're sending orders to market, and want to hit the price you see right now. Sorry, bad fill, was doing a GC. Tell that the the head of desk & see if you last the day...
Too harsh? Critique it.
Quote from syswizard:
Free is worthless if not properly supported. Is Oracle going to support Java ? Does anyone know ? Of course not, only Larry knows that.
Quote from dcraig:
Of course anything may happen, but I can't see why Oracle bought SUN if not for Java and the corporate Java user base. For SPARC?
In the unlikely event that Oracle drops Java, somebody else is bound to step in to provide paid professional support. The Java user base is enormous. Java is probably the number one language. Think mobile devices too.
With a background primarily in software engineering and living in Java I just don't see a strong future for C++ as the primary language for developing trading systems. The argument a few years ago held true that performance was faster with native code which C++ compiles into but if you look at the industry and where Java is headed here are my major points for seeing this shift: This also holds true I think with Java vs. Microsoft.NET
1. The huge amount of open source frameworks built in Java that are available for free when building systems is incredible. This ranges from generic to trading specific frameworks like FIX integration. So you get a head start and faster development time in Java vs. C++
2. Java performance keeps getting better its easier to code in java, it abstracts memory management from the user which is a big advantage in not having to deal with memory leaks. If you compare raw computing between java and C++ itâs very minimal. Its also easier to maintain and understand existing code in Java than C++.
3. The tooling for java and the tooling that can be built for domain specific languages for building trading strategies are feasible (which is what I have done) in java and you can even embed other higher level languages on the java platform unlike C++.
4. Itâs easier to build distributed systems with java using higher level networking frameworks and with the ability to build distributed systems like I do for tick processing that would take a long time to build in C++. I can process over 70 million trades per session using multiple servers all in real time with java.
5. Look at the developer market, you have more developers that are really good in Java than C++ and I think the old school thought that trading systems should be built in C++ is going to fade. The one exception might be ultra ultra low latency order execution but we are talking less than milliseconds of difference and in my experience people building systems the order submission time assuming youâre in a good data center is extremely fast with the brokers I have experience with.
Just my two cents would be interested if people agree or disagree. - WaveTrader007