Daniel Duffy
C++ author, trainer
- Joined
- 10/4/07
- Messages
- 10,434
- Points
- 648
This is meaningless for Quant work. If you want to be a programmer, sure, knock yourself out.On a more general level it is useful to see TIOBE stats (Python #4).
TIOBE Index | TIOBE - The Software Quality Company
Python and R are great for small projects, medium projects and projects when you need quick results or help you understand what you are doing.My instinctive gut feeling is that Python is useful for small to medium-sized prototypes that will either be ported to some other languages or will die when they have run their course. I'm guessing to an extent but that's what tends to happen elsewhere..
Your use cases may be different and it would be interesting to hear them.
Can you be more precise? e.g. why you use Python, what kinds of applications and so on.
The language flame wars ended a long time ago.
//
From a software design perspective (the s/w being seen as a product) I wonder if the following issues are on your radar and whether they are important in your case:
1. Who has to support the product and for how long?
2. How costly is it to maintain the (undocumented) code?
3. How easy is it to add new features?
4. How do you do PDE and Monte Carlo (for example) in Python?
You need to understand what you want to do. Desk Quants and quant traders have been far from C++ for the last 10 years or so (maybe more).
Amen brotheromg..people in this quant forum really have no idea what real quant is doing....
Whatever pingu said above is 100% correct, I can vouch for that as I myself work as a front office quant in an AM.
Just in case pingu is not clear enough:
You will never need C++ as a front office quant;
You will never need C++ as a front office quant;
You will never need C++ as a front office quant;
C++/Java/C# are for quant developer, which is just a fancy name for finance software engineer.
I learned Java for 3 years in undergraduate, and never wrote a single line of Java in my job. All of them are python and matlab. Are you gonna do a Cointegration analysis using C++? Blacklitterman in C++? Logistic regression with LASSO in C++?.... God..be my guest...
You will never be fast enough to make investment/optimization/time series decision using C++ unless you want to be a quant developer, which is not a real quant.
I'm asking you. One-liners are less than useful. What I miss in 95% of your posts in general is that the WHY is always missing. Pretend I am a potential customer.Talk to IT for those answers.
omg..people in this quant forum really have no idea what real quant is doing....
Whatever pingu said above is 100% correct, I can vouch for that as I myself work as a front office quant in an AM.
Just in case pingu is not clear enough:
You will never need C++ as a front office quant;
You will never need C++ as a front office quant;
You will never need C++ as a front office quant;
C++/Java/C# are for quant developer, which is just a fancy name for finance software engineer.
I learned Java for 3 years in undergraduate, and never wrote a single line of Java in my job. All of them are python and matlab. Are you gonna do a Cointegration analysis using C++? Blacklitterman in C++? Logistic regression with LASSO in C++?.... God..be my guest...
You will never be fast enough to make investment/optimization/time series decision using C++ unless you want to be a quant developer, which is not a real quant.
IT should take care of everything else. You are talking like a person working on the IT group trying to sell the software and services. There is nothing against that. The Quant doesn't really care as long as the answer is correct. If IT develops in C++/C#/Java, great.I'm asking you. One-liners are less than useful. What I miss in 95% of your posts in general is that the WHY is always missing. Pretend I am a potential customer.
You mean, you don't know what happens to your Python code base after it has been handed over to what you call IT?(?)
And you have not answered the kinds of applications (that APalley that listed) I asked about.
IT should take care of everything else. You are talking like a person working on the IT group trying to sell the software and services. There is nothing against that. The Quant doesn't really care as long as the answer is correct. If IT develops in C++/C#/Java, great.
IT is mostly a cost center in a Financial Institution (outside of FinTech). That's very important.
BTW, just checked your Linkedin Profile, you have never worked for a investment/trading firm as a front office quant, you are a system/software engineer. If I have your CV, I wont even interview you for the investment quant role in my team....just my 2 cents...mea culpa, so any questions on real quant can be addressed to you in the future? Is Dave Lee a real person or an anonymous Internet warrior?
Moving from Java to C++ is a big step. They are like oil and water. It's an existential problem. Amen.
Since Daniel asked me to respond, here are my two cents. I mostly agree with APalley about this. It still doesn't contradict what I was sayingFrom my experience and observations across several major firms, I think that blanket statements that C++ is no longer used are absolutely false. It really depends on your role:
- As Dave mentioned above, Quant roles that are about fast decision making will generally do everything using Python or similar. I.e., quant traders and many desk quants. C++ is not practical for this sort of work.
- Roles that are more strategic, I.e, sell side desk quants (even Phds) that develop new products, strats, quant developers, etc, code in C++. Analytics libraries in banks are almost exclusively still built in C++. Not just legacy code maintenance, but actual new development. Many banks are updating legacy C++ code to use the newer language features -- this is certainly not a sign of moving away from the language. These C++ analytics are usually provided as Python packages for the software on top.
- Algo trading type roles: This is likely the most diverse in terms of language choice. I know places that used C++, Java, Python, Perl and/or combinations of all of the above. However, most of such roles do require knowledge of C++ as it's one of the few languages that when learned, will provide a good understanding of lower level concepts.
- IT type front office development roles (I.e, developing the systems and tools that traders use): Knowledge of C++ is important (to be able to understand the underlying libraries when necessary) but actual day to day is usually Java, Python, and/or some GUI language (HTML5 is becoming very popular).
Dude, this Daniel guys is biased, because he is the instructor of this C++ course, which i think generating profits for this forum, and if we tell the truth of the usefulness of C++, then he will be making no money.
Since Daniel asked me to respond, here are my two cents. I mostly agree with APalley about this. It still doesn't contradict what I was saying
- This is clear. Nothing to add
- Only certain things are develop in C++, mostly esoteric libraries and long term development. Decisions are not made based on this code until later on unless some very specific functionality is needed in terms of raw execution speed. And those functions are still called from Python, R, Matlab, etc
- Algo trading is not really finance. It's really raw speed at its finest. If you want to go this route, sure learn C++ and C and assembly and GPU programming, etc. Anything that gives you an advantage at the very low level. You will also need to understand networking protocols, network architecture, OS architecture, etc. This is not finance but Computer/Electrical engineering in the most pure sense
- Very clear too.
Again, as a future, what do you want to do?
I understand and I understand Daniel's point of view. I think Daniel's experience is from the IT side of things. He might be right, C++ might be used a lot.Dude, this Daniel guys is biased, because he is the instructor of this C++ course, which i think generating profits for this forum, and if we tell the truth of the usefulness of C++, then he will be making no money.