Quote from science_trader:
C & C++ are shit languages. Want a proof of it ? Banks are using it...
Better go for perl or python.
Otherwise, Matlab allows a quicker implementation.
Quote from segv:
I see we have a language bigot. Programming languages are tools, like anything else. Use the best tool for the job.
Why do quants continue to write production systems in C/C++? Because they can guarantee performance. Good luck guaranteeing performance with perl and python.
-segv
This needs correction. If you are talking abouy scientific calculation, Python gives you access to the most reputable mathematics and statistics libraries, developed over tens of years. A lot is still done in Fortran, both for the C++ as the Pyhon case and requires Fortran runtime libraries. Setting up identical calculations in C++ - identical libraries are used - will result in practically identical execution times as in Python. By far most instructions executed are from identical highly optimized code. Python code comes only in as kind of a glue linking calls to such libraries. The C++ program, if done correctly will perform a tiny bit faster, but at what development cost?Quote from segv:
I see we have a language bigot. Programming languages are tools, like anything else. Use the best tool for the job.
Why do quants continue to write production systems in C/C++? Because they can guarantee performance. Good luck guaranteeing performance with perl and python.
-segv
Quote from nitro:
Any C++ programmer worth his salt can pick up Python or any of the languages listed in a week. Computer Science is not about programming languages, but about abstractions. A language is just a syntax to implement those abstractions.
Many of the theoreticians that I know at Citadel use Python and Matlab to prototype. If the system is viable, they either port it to C++ for production, or it is given to the professional programmers to implement in C++.
That's obvious, but nitro did not address the Python -> C++ case.Quote from segv:
I agree. It should be noted that the inverse is not true. A programmer with experience in only perl/python/java/etc will not be likely pick up C/C++ in a week. Hence the demand for C/C++ experience.
-segv
Quote from stephencrowley:
Good point.. I'm not a fan of designing complex software in C/C++, but what kind of performance are you guaranteeing ?
For realtime number crunching speed is criticial.. but for offline optimization, some of the higher level interpreted lanuages might actually be preferred due to the increased maintainability.
I'm working on a hybrid java/realtime platform now where simulation/computation threads are scheduled by the OS using highly optimized generated C code and can be used as plugin modules in online or offline analysis and near-realtime performance is gauranteed with clever use of linux 2.6's threading capabilities.. I've not yet lucked into hard realtime linux because for my purposes it is not necessary, but there are ways to obtain a good balance.