Something to consider is whether or not you will need a FPGA for your system.
Another thing to consider is whether or not you will need to secure your code by encrypting jar files.
Another thing to consider is Garbage Collection freezing your application when you scale up.
There are solutions for all of these items.
Java for finance
-
GhostRider
- Posts: 1
- Joined: Thu Jan 01, 2004 12:00 am
Java for finance
Hi there,
Java is for sure ok for many applications in finance. Just look at LMAX, they also do fast stuff. Don't use this CEP stuff, it's just a marketing buzz like Cloud Computing. Can mean anything.
Cheers.
Java is for sure ok for many applications in finance. Just look at LMAX, they also do fast stuff. Don't use this CEP stuff, it's just a marketing buzz like Cloud Computing. Can mean anything.
Cheers.
- silverside
- Posts: 0
- Joined: Thu Jan 01, 2004 12:00 am
Java for finance
GS Collections is a collections framework for Java. It has JDK-compatible List, Set and Map implementations with a rich API and set of utility classes that work with any JDK compatible Collections, Arrays, Maps or Strings. The iteration protocol was inspired by the Smalltalk collection framework.
link
link
Let's jet out, we'll cruise at hyperspeed, I've got the beat, I've got the beat and that's all we need
- braincat
- Posts: 0
- Joined: Thu Jan 01, 2004 12:00 am
Java for finance
http://programmers.stackexchange.com/questions/159373/what-backs-up-the-claim-that-c-can-be-faster-than-a-jvm-or-clr-with-jit
One of the better discussions of issues, java vs. c++
I used java for a year and hated it. Went back to c++.
One of the better discussions of issues, java vs. c++
I used java for a year and hated it. Went back to c++.
You do not have the required permissions to view the files attached to this post.
- signalseeker
- Posts: 0
- Joined: Thu Jan 01, 2004 12:00 am
Java for finance
@silverside
Have you used guava? I would be curious how GS collections compare to guava. Thanks.
Have you used guava? I would be curious how GS collections compare to guava. Thanks.
The dark is light enough.
- silverside
- Posts: 0
- Joined: Thu Jan 01, 2004 12:00 am
Java for finance
@signalseeker
no - I haven't used Java much, but generally GS code is high quality, so I thought I would share the link to the NP community.
no - I haven't used Java much, but generally GS code is high quality, so I thought I would share the link to the NP community.
Let's jet out, we'll cruise at hyperspeed, I've got the beat, I've got the beat and that's all we need
- tristanreid
- Posts: 0
- Joined: Thu Jan 01, 2004 12:00 am
Java for finance
Following up on a conversation off-line:
http://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Java
You can tell that this page was written with a bias toward c#, a lot of the comparisons are questionable, and even the syntax highlighting used on the page is better for the c# code. That said...
The highlights to me:
-the way java handles object vs primitive types isn't very flexible and leads to workarounds. For example the lack of structs (as pointed out by FDAX), and the inability in java to 'unset' a primitive type to null, which leads to workarounds like magical numbers or an extra boolean to keep track
-if you ever call other language environments like COM, you get a variable that has properties/methods that are known by you, but not the compiler. In java you handle this by either creating fake stubs and casting or by calling everything using a string mechanism of some sort. In c# you have the dynamic keyword, which allows you to call things normally without the compiler complaining
-delegates and closures - this is huge. Even if you're not into the functional programming thing, just doing stuff like event handling is much simpler when you can pass a reference to a function around
-generators (the yield return thing). You can't quite do the same thing with Java using iterators. I actually wrote the examples of this on the comp sci generators Wikipedia page some time ago, but the problem with iterators is that you only get one return expression, you can't do a series of returns the way you can with yields.
-no operator overloading in java. I honestly don't use this all that much in c#, but I think it highlights the trend that Java tries too hard to protect a programmer from himself.
Anyway, none of this alleviates my suspicion that in a couple years we're all going to be talking about JavaScript anyway... Evil Grin
-t.
http://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Java
You can tell that this page was written with a bias toward c#, a lot of the comparisons are questionable, and even the syntax highlighting used on the page is better for the c# code. That said...
The highlights to me:
-the way java handles object vs primitive types isn't very flexible and leads to workarounds. For example the lack of structs (as pointed out by FDAX), and the inability in java to 'unset' a primitive type to null, which leads to workarounds like magical numbers or an extra boolean to keep track
-if you ever call other language environments like COM, you get a variable that has properties/methods that are known by you, but not the compiler. In java you handle this by either creating fake stubs and casting or by calling everything using a string mechanism of some sort. In c# you have the dynamic keyword, which allows you to call things normally without the compiler complaining
-delegates and closures - this is huge. Even if you're not into the functional programming thing, just doing stuff like event handling is much simpler when you can pass a reference to a function around
-generators (the yield return thing). You can't quite do the same thing with Java using iterators. I actually wrote the examples of this on the comp sci generators Wikipedia page some time ago, but the problem with iterators is that you only get one return expression, you can't do a series of returns the way you can with yields.
-no operator overloading in java. I honestly don't use this all that much in c#, but I think it highlights the trend that Java tries too hard to protect a programmer from himself.
Anyway, none of this alleviates my suspicion that in a couple years we're all going to be talking about JavaScript anyway... Evil Grin
-t.
If you can make computers as smart as humans you will have invented a machine that can sing the words to the Flintstones tune but will forget to pay the phone bill.
- MadMax
- Posts: 0
- Joined: Thu Jan 01, 2004 12:00 am
Java for finance
Not a java fan and only had basic experience with it, but it thought I should point out that the lack of delegates and closures can be alleviated (I think) by combining it with other JVM languages like Scala and Clojure.
- tristanreid
- Posts: 0
- Joined: Thu Jan 01, 2004 12:00 am
Java for finance
That's true. Scala also fixes some of the other nice-to-have's like operator overloading and multi-line strings (which I forgot in my list above, but I REALLY like in C#)
What Scala and Clojure can't fix is the relative weakness inherent in the JVM. Two things that FDAXHunter pointed out last night: lack of ability to efficiently use memory (no struct), and the precision of the DateTime libraries (Java has 1,000 ticks per second, C# has 10 million). It's basically that CLR gives you more raw-metal access than JVM.
-t.
What Scala and Clojure can't fix is the relative weakness inherent in the JVM. Two things that FDAXHunter pointed out last night: lack of ability to efficiently use memory (no struct), and the precision of the DateTime libraries (Java has 1,000 ticks per second, C# has 10 million). It's basically that CLR gives you more raw-metal access than JVM.
-t.
If you can make computers as smart as humans you will have invented a machine that can sing the words to the Flintstones tune but will forget to pay the phone bill.
- signalseeker
- Posts: 0
- Joined: Thu Jan 01, 2004 12:00 am
Java for finance
There is system.nanoTime for higher than millisecond precision and fastutil for collections of primitives. I remember seeing some libs which provide structs but have personally never used them. I prefer working with arrays or collections of primitives when I care about memory efficiency.
I thought both the articles presented in this discussion were quite biased and even inaccurate at times.
There is no doubt in my mind that C# is a superior language to java but I am not sure how the JVM compares to CLR in terms of performance. It would be interesting to see some research papers on that topic.
At the end of the day the biggest factors in choosing a language/platform is whether you are working on unix or windows and your programming ability.
IMO historically java has mostly appealed to below average programmers and most of the java code out there is pretty bad. That does not really mean you can't write fast code in java. FWIW LMAX is an example and one of the top US equity exchanges have their core matching engine written in java.
I thought both the articles presented in this discussion were quite biased and even inaccurate at times.
There is no doubt in my mind that C# is a superior language to java but I am not sure how the JVM compares to CLR in terms of performance. It would be interesting to see some research papers on that topic.
At the end of the day the biggest factors in choosing a language/platform is whether you are working on unix or windows and your programming ability.
IMO historically java has mostly appealed to below average programmers and most of the java code out there is pretty bad. That does not really mean you can't write fast code in java. FWIW LMAX is an example and one of the top US equity exchanges have their core matching engine written in java.
The dark is light enough.