• C++ Programming for Financial Engineering
    Highly recommended by thousands of MFE students. Covers essential C++ topics with applications to financial engineering. Learn more Join!
    Python for Finance with Intro to Data Science
    Gain practical understanding of Python to read, understand, and write professional Python code for your first day on the job. Learn more Join!
    An Intuition-Based Options Primer for FE
    Ideal for entry level positions interviews and graduate studies, specializing in options trading arbitrage and options valuation models. Learn more Join!

Why is C++ good for Quantitative Finance? Top 3 reasons

As I mentioned before you are using a legacy system that it's already established and free of bugs. Then, that system is used to generate C++ code (maybe because that was what the originals developers knew very well or for whatever other reason). Those systems are hard to remove from the pipeline. I'm sure the generated code is proven and almost free of bugs so the tweaks are minimal. Why would anybody change that system to another language? The old saying "If ain't broken, don't fix it".

The only time a new language could be introduce is when new development comes to a shop. However, if the people in that shop already know C++ (and probably they are very good at it), they will rather use that language than any new one, perpetuating C++.

I can give you a clear example of a transition. My group have a risk engine calculator that takes care of calculates risk parameters based on our groups in-house factor models. That engine was written in C++. When my boss came to the company (he is mostly a Java person), he re-wrote the whole engine in Java without penalty in performance. This is one of those rare cases that a new language gets established but for that to happen, someone needs to shake the world.

Once I came across a similar topic when reading threads when you were talking about the huge cost implied when willing to switch to C#. You said that most of the companies are willing and in future it is inevitable to switch to .NET and new technologies but it will cost them a lot of money. But gradually you are expecting them to change C/C++/VB and kinda "old" languages in favor of new ones like C#/F#,etc.

Here I read (I think) powerful arguments why C++ is not easy to replace. I liked all of your posts and you really seem to be knowledgeable around this area and I enjoy your posts, so my question to you is what makes you feel C++ will eventually be (at least largely) replaced provided the cost remains cost in future too?

Thanks
 
3. Being a standard, no one company is the owner of C++. In this sense we shall not see OS-specific features creeping into the language. It will not be possible to pull the plug on C++ and force developers to adopt a new language.

Is OS dependency really important since only few of them take the largest market share?
 
I am not experienced enough . But I feel newer systems are being developed in Java more because the development time is much lesser. You have so many libraries and inherent support for almost eveything. The exception catching mechanism is amazing in Java. Once we tried using C++ for a part, the development time was high. Trying to develop distributed system was also not at all easy.

Java is not really used much in time sensitive industry
 
Once I came across a similar topic when reading threads when you were talking about the huge cost implied when willing to switch to C#. You said that most of the companies are willing and in future it is inevitable to switch to .NET and new technologies but it will cost them a lot of money.

I doubt I ever said the change to .NET was inevitable. I don't use .NET and I'm not a fan.
 
Tsotne: This is not first and not last. Seems inevitable in future. If some of the competitors in a particular field switch to modern day programming bringing the advantage to their operations, others will be forced to follow their foot steps.

Alain: True, but they might follow really really slowly.

Yes I was referring to that thread.
 
For Java and C# I see an absolute ton of financial job postings but these tend to be for web service, database, or basic software infrastructure development. Interestingly there are some low-latency java jobs out there ... probably more than you would find for true numerical languages like fortran but less that C++ (not by much though). My feeling is that a lot of companies like out-of-the-box solutions with on-the-minute technical support (the kind given from Microsoft or Oracle). Therefore languages like Java and C# will always thrive under these conditions. I actually heard an expert from a panel of distinguished computer run-time gurus mention that we live in the "age of rapid application development". Many of the others agreed and most of them mentioned that what is really important nowadays is not sophisticated alien-like technology but rather "tools" that are easy for developers to use. Microsoft has championed this approach with their C# and perhaps F# going forward (since they both rely on .NET) while Oracle has championed this approach with Java. I'd think that in today's tough economic environment, low overhead costs would be very important for the survival of a business. But the fact remains that Java, and .NET are still way behind C++ and especially C and Fortran when it comes to speed and pure number crunching power. Even a sophisticated language like Common Lisp is said to be on par with Java in terms of speed, but none of these are modern day business languages b/c they simple don't have 1) a huge standard library and 2) Corporate-grade technical support. So any financial company employing such languages either have 1) a clear vision that speed is critical to their success, or 2) enough capital to 'experiment' with higher performance languages. A company without a clear vision, long-software development cycles, and low capital will quickly go out of business.
 
My opinion is that C++ is heavily taught in school

Really? My experience is the exact opposite.

edit: previous post by poster has disappeared...
 
I find the idea of Oracle "championing" anything to be at variance with my experience.

Note how they are now screwing with Java Linux distros so as to make their O/Ses seem more attractive.
Of course that's not enough for many people to move to an Oracle O/S, but as long as the number >0 then Oracle is happy.

It's important to understand the Oracle mindset.
If screwing with people who don't give Oracle money causes any of them to start giving Oracle money then that is what Oracle will do.
The amount you will have to screw Linux based Java users to move to an Oracle O/S is really quite large, so expect even more Oracle screwing with Java.
 
My opinion is that C++ is heavily taught in school

Really? My experience is the exact opposite.

edit: previous post by poster has disappeared...

I started in C and C++ through a university course, but that was over 10 years ago. The professor there was already lamenting the new focus on Java, which probably began being taught after I graduated.

Enlightening thread.
 
I started in C and C++ through a university course, but that was over 10 years ago. The professor there was already lamenting the new focus on Java, which probably began being taught after I graduated.

Enlightening thread.

One thing I've noticed in the last 15 years is that some educational institutions take the line of least resistance, e.g. doing Java instead of the hard stuff C and C++. This approach does students a disservice IMO.
 
Right! I was actually surprised to look at the curriculum again and see that it has C++ still, although it mentions Java for other classes too.

I read something else a long time ago that one person said it was easier to sort out people who were good programmers/not good with C++ because the pointer idea required some critical thinking. Even if another language might be useful, it apparently did not provide this filtering in his opinion.
 
...
I read something else a long time ago that one person said it was easier to sort out people who were good programmers/not good with C++ because the pointer idea required some critical thinking.

I don't think you have the concept of pointer really clear. There is no relationship between critical thinking and pointers whatsoever.

If you want to learn pointers really well, learn C or assembly language. Raw pointers in C++ are being phased out for smart pointers because pointers they are such a PIA.
 
I would like to do financial mathematics But in South Africa there is a problem with the job oppportuniyies .I sit possible to start my own campany with the skills I will get when doing a n MSc in Finanacial Mathematics like maybe start at stock exchange and move on to something with bigger asset as if I will make a profit move to something bigger and better.
 
I don't think you have the concept of pointer really clear. There is no relationship between critical thinking and pointers whatsoever.
2 kinds of people: those who do and don't (know pointers).
 
Right! I was actually surprised to look at the curriculum again and see that it has C++ still, although it mentions Java for other classes too.

I read something else a long time ago that one person said it was easier to sort out people who were good programmers/not good with C++ because the pointer idea required some critical thinking. Even if another language might be useful, it apparently did not provide this filtering in his opinion.
There is actually a trend (or at least it appeared) to start into to CS 101 with Python. I learned (a bit of) Python in my own time before now enrolling in an office university JAVA course and find it a pain in the *ss :) . But I have to spend a lot of less time on the course than my fellow courses, because I already understand the algorythms.

I would love to learn some JAVA / C / Lisp ideas, but just stick to Python afterwards. At least in academics Python is already #1 afa I can tell.
 
Back
Top