I've been hitting my head against a few walls because I don't know enough about the different options to know that my choice of development environment will be the right one. As only a moderately capable programmer, it will take some time for me to develop skills and understanding and while I enjoy the journey, I would prefer to be more productive with my time.
Here's the problem:
I am looking to create an interactive charting control for displaying candlestick financial data as well as line graphs, density maps and some similar types of visualizations. I am looking to feed about 8 million data points into memory and there will be lots of automated characterization of the data and comparisons based on filtering and sorting. This will form part of a broader analysis application that will see its primary use for identifying and analyzing behavioral patterns in financial data. I have experimented with lots of charting controls to date and performance has been severely inadequate in every case but one and it doesn't provide the flexibility I need.
Up until now I have done my programming in VB.Net. It has been great, I've enjoyed it and I've developed some very impressive applications with it. I would love to continue to use it but whenever I look into high performance and graphics, VB.Net is not an option. Anyway, life goes on. I could see C# as a fairly easy step away from VB, but will that help?
In my mind, I am thinking that using GPU's will give me the best performance for now and the foreseeable future. I also believe that the type of memory operations I am performing will benefit significantly from using pointers. I understand that C# has some capability to optimize in this area, but C++ will give greater freedom and control.
Is C++ is my only real option?
Would using a game engine like Unreal, CryEngine or similar give me a shortcut to taking advantage of GPU's and in creating a visually impressive environment? Things such as collision detection and even a framework for AI may have some advantage for my application.
Finally, would using XNA give me performance within a respectable margin of C++? I feel that C# and XNA would perhaps be the easiest progression for me as a programmer.
In amongst all of this, does the new version of Visual Studio (v11) change anything?
I look forward to your comments and insights.