Quote from Gamer:
I am seriously thinking about starting to write my own charting software, consisting of only what I need, not bloated by thousands of useless marketing-type features that drags the performance down.
I have a strong technical background, so the programming knowledge is not a problem. I also appreciate that it's not going to be a short-term commitment.
Has anybody here written their own software that hooks up to their chosen feed through an API?
I am debating whether to stay with the native Win32 API or go with .Net. Of course Win32 with C would give the best performance, but I worry about the future of Win32, especially if more and more new Windows features are exposed only through the .Net API and Win32 becomes more like an undocumented part of Windows.
What do people think?
I have done it in Java using jfreechart charting library with some extensions to that library for better "real time" performance. Supported data feeds are TWS, DTN IQ and Opentick (now defunct). I run it on Linux, but it should run on MAC or Windows with very little work.
I cannot see any justification for doing it in C/C++. There is enough work to keep you busy anyway without the extra imposed by C/C++. Java is easily fast enough. My current Q 9550 quad barely raises a sweat with four screens. Even in a fast market around the open, it's still > 75% idle when dealing with several hundred high volume stocks. Just about any dual core CPU would be quite sufficient.
With the trend being to CPUs with more and more cores, one consideration in choosing a programming language/environment is the quality of support for concurrent programming. Here Java easily wins over something like POSIX threads and no doubt WIN32.
The added value is not in drawing some charts as there are plenty of inexpensive packages that draw nice charts. Nor is it in making it "lightweight" as opposed to "bloated". The question is what are you going to do with it once you have some working charts ?
We still have a performance issue in the RIthmic API side here (blows on AMD, works on Intel) - either they start working on it soonish or I will see I get a cheap intel server just to run the API connectivity process.