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

Quote from cookding:

If my memory serves me right... I have not done Java programming for a long long time - another simple (theoretical) example would be circular referencing to a block of memory - I think the memory will never be freed since reference count to the object is not zero.

nope.. that is completely wrong, reference counting is not used as the way of garbage collection in any java vm i know of.

a form of memory leaks can happen in java but they are very rare (and technically they not really memory leaks as the objects are still being referenced).


I coded C++ for fours years before switching to java in 1998.. the jump from C++ to java is almost like jumping from years of programming with assembly code and then switching to programming with C. In both cases you are giving up performance and control for a easier and more higher level style of coding.
 
Not that your points don't make sense, but I think this industry is heavily based on C++ and excel at the moment. If people decide to drop C++, it can only be for a language that is supported to work alongside Excel, it can't be Java, it could be C# or F#.

On the other hand, C++0x is coming out soon, if it's convenient enough to use and well documented, I can't see C++ dying too soon.

Quote from wavetrader007:

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
 
Many colleges are beginning to drop C++ in favor of C#.Net and/or Java. I'm a C++ guy b/c I'm a bit of an old fart but I've begun developing in C# lately because the writing is on the wall. C++ isn't going to disappear but it is becoming increasingly less popular.

Quote from masterm1ne:

I think microsoft realized the basic gist of your discussion, and therefore implemented .NET framework into their languages. I've been reading and hearing C#.NET is actually what will become the front running language in the C family
 
Hi everyone,

I am planning to start learning Java to design my ATS. Is there any recommended resource to start learning java just for a specific purpose which is designing an automated trading system.


If you have any, please share.

Thanks
 
Quote from the1:

Many colleges are beginning to drop C++ in favor of C#.Net and/or Java.

True but I think that's strange. Learning the basics is easier when you use something like C that allows you to see what's really happening.
 
It's not about choosing one language over another, every language has basically the same structures and concepts, it's about good design and being pragmatic. All of my GUI is in C#, it's pretty hard to beat C# for rapid GUI design. My server side software is written in C++0x style C++ because it's fast and portable. I was running Linux on the server side, but I switched to windows as I found VS2010 generated faster code and debugging was easier (VS's debugger is leagues ahead of gdb). I'm not going to die in a ditch over ideological decisions. Anyway, writing the ATS is the easy part, it's what you do once it's finished that really counts.
 
Quote from wavetrader007:

Good point on Microsoft. But the major difference Java is free and all these open source frameworks are built in Java how does Microsoft compete against that?
Free is worthless if not properly supported. Is Oracle going to support Java ? Does anyone know ? Of course not, only Larry knows that.

C# Dot-Net is becoming the Windows platform standard programming language. You cannot separate the two.
Visual Studio 2010 is one impressive platform for development. Java has undergone many IDEs....remember JBuilder ?
History.
 
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.

C# Dot-Net is becoming the Windows platform standard programming language. You cannot separate the two.
Visual Studio 2010 is one impressive platform for development. Java has undergone many IDEs....remember JBuilder ?
History.

I work with Eclipse that is a standard Java platform. Very nice and expendable. It is also free. Apache code base has a lot of free Java libraries supported by millions of Java Developers from around the world. If you interested to pay Microsoft $2000 every few years per developer than go with C#. However Microsoft is not a kind of company it used to be. It is more of an Excel/Word/Desctop shop and is not very popular among enterprises. Oracle/IBM will never switch from Java to C#, so are 90% of Web sites that have Unix backends.
After all that, competition is good for both Java and C#. Good luck with choices.
 
Quote from alexandert:If you interested to pay Microsoft $2000 every few years per developer than go with C#.

The express editions are free and perfectly functional.
 
Back
Top