Why I think Java will take the lead over C++

Quote from cookding:

Thanks for the correction. I googled and indeed Java does not use reference counting garbage collector.

You can still leak objects if they remain in scope. Crap attached to a singleton for example.
 
To whinge about IDE licensing costs admits that your code will not be worth that cost. If that's the case, it sucks to be you.

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

Grow up and learn C++. Punch that hippie who taught you Java.

Even then, if Java's still your thing, then hey, enjoy the open source culture, spend your weekends contributing to some framework for $0, dream about scrum, kanban, extreme programming, and whatever other micromanagement tools you skateboarders dream up. Go get drunk with the other back office wannabes. Whatever. Get a side job teaching Java to other failed programmers ;o)

Too harsh? Critique it.
 
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.

Easy to critique. First determine what your real time requirements are, and then look at GC performance in your context. It may be good enough and it may not be, but you'll never know without proper analysis. Hand waving is not a lot of use.

C++ or Java or anything else and fills are still going to be missed sometimes. The point surely is whether the GC (and there are multiple GCs to choose from) makes a significant difference to the number of misses.

Faster development may be sufficient to compensate, if the Java system is in production while the C++ system still has developers pouring over valgrid or suchlike trying to sort out various types of memory abuse due to some less than expert programming.

Of no little importance is the likelihood in many circumstances, that the best language to use is the language that the programmer or team have the most experience and expertise in.

As usual, in the real world there are trade offs to be made.
 
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.

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.
 
Oracle is suing Google for $6.1 billion over java. That will almost pay for the Sun acquisition. I don't see them dropping support for java while the lawsuit (and its appeals) are ongoing.
 
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.

I was going to ask a question you are alluding to, because I'm an idiot when it comes to programming. But I was going to ask how mobile devices effect the situation.
 
lol, how is that possible with C#/.Net stack having killed Java already some time ago. Not many new software projects are started with Java as core underlying language, if it comes to compiled, higher level, abstracted OOP languages, then the choice pretty much clearly goes to C# (unless of course machines run Linux), and I only talk about projects that target higher level OOP languages. And there has never been a contention between a low-level language such as C++ and abstracted languages like Java or C#, so I am not sure what you are talking about.

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
 
Last edited:
Back
Top