I'm a long time VB6 dev (with much lesser experience in java, C, and C++).

I have a VB6 app that I have been adding to for 6 years. This app is a form of machine vision, and requires extremely efficient and fast math computations (matrix algebra), involving massive data arrays and a lot of manipulation of bizarre indexes of data elements.

VB6 just doesn't provide the performance or memory space that I need, so I think I have reached the point where I need to jump from VB6 to ...??? Hmmm... what?

I need to target WinXP, Win7 and Win8 os's with this app, and I may consider opting for multi-thread or even GPU processing in the future. I currently have copies of VS2005 Team and VS2008 Pro, but may consider investing in the newest MS-VS if necessary.

I would appreciate any comments on general performance differences between C++, C#, and VB.net in the context of image processing (and available math acceleration from Intel, AMD, or CUDA).

Thanks