I am going to develop real time application which will receive stock market data and doing some processing then disseminates to client application. I decided to divide the calculations between the server and client the server will make the basic calculations then will send the basic data to the client which calculates the final variables.
I decided to develop the client application (GUI only) using C# and the component which will calculate the final variables (called:variables calculator) using C++. the aim of developing "variables calculator" in c++ is for modularity. for example if I found the variables calculations will take more time on the client side I can use the same module on server side.
Also I will develop the server side using standard C++.
Notes: The server should process set of messages and send it to client in less than one second The maximum number of messages come at the begining of the market 100,000 messages
Any suggestions?
What exactly is the real-time constraint that you have to work with? Micro-seconds, milli-seconds, seconds?
Does it actually need to be real-time, or simply high-performance?
Assuming it really needs to be real-time, the language is unlikely to be the most important thing in the system, and you are mostly likely to be constrained by the rest of the run-time environment. E.g: libraries you use, network stacks, network protocols, operating system, CPU architecture, memory, cache etc.
All that said, C is probably going to give you the best combination of ease-of-use and knowing what the underlying system is doing. If you know C++ very well, then it would also be suitable if used with a strict coding standard. If it is extremely high-performance, or has extremely high predictability requirements then you may need to drop to assembler code, but this would be unlikely, and chances are the compiler has a much better understanding of the CPU pipeline than you do, and it would be impractical for anything over a few thousand lines-of-code.
If course, if you just need some relatively fast, then I don’t the real-time-ness should be your prime consideration in language choice, and rather availability of suitable libraries and tools, developer team experience, suitability to the application, etc would be more important considerations.