C++ will be used for the next 50-100 years in financial services

If you're toying with the idea of learning C++ for a job in financial services, drawn by the promise of huge pay but put off by the awareness that it's really not an easy language to earn - particularly compared to Python, Rainer Grimm has a message for you: do it. C++ is deeply embedded in the financial services industry, and that's not going to change anytime soon.

"When I first started studying mathematics in 1994, my professor said to me that it wasn't worth learning FORTRAN," says Grimm. "He said FORTRAN wouldn't be used much in the future, but there's still plenty of FORTRAN around now. He said much the same about C++, but when a programming language is used as much as C++ is, it will be used for the next 50-100 years."

In banking and elsewhere, C++ is used for low latency coding applications. "The best jobs for C++ coders are in high frequency trading," says Grimm. The language is also used by games developers and automotive manufacturers. "C++ is used where you need to talk directly to hardware, in an abstract way," he adds. "There's no real alternative to it."

Grimm might be biased, but he's also in a good position to judge the programming landscape. Based in Germany, Grimm is one of the top C++ trainers in the world. Before the pandemic, he travelled globally. These days, he mostly tutors groups online. He's popular: "I'm booked up for 2022," Grimm confesses.

Should you learn C++ on your own?​

There's a reason C++ tutors like Grimm are needed. "You can learn C++ on your own, but your journey will be way, way longer [on your own than if you have a tutor]," Grimm says. "C++ is a complex language, you need to learn how to do it right instead of falling into traps."

What are the traps? Grimm says it's all about avoiding the "old techniques." - "C++ is a 40-year-old language – it was developed with hardware in mind that is now 40 years old," he says. "The language has improved a lot in the past 20 years."

The main problem with self-taught C++, or even C++ taught at universities, is that people tend to start on old versions of the language, says Grimm. At universities, this is largely because professors themselves cut their teeth on C++ '98 and think students need to start there too, but the older versions of the language require manual memory allocation which is unnecessary in the most recent iterations.

If you're learning C++, you should start on a version no older than C++ 11, says Grimm. From there you can move onto C++14 or C++20 (the most recent version). "It's very important that you start with modern C++, not with legacy C++ and that you learn by design," says Grimm. "When you're really, really, good on modern C++ you can start to think about how it was done before. But you don't start on the complex levels of abstraction. It's like when you're learning to drive a car - you need to learn how to use a brake, not how the brake works."

C++ or Python?​

Python is an easier language to learn than C++, and for this reason it tends to be the go-to language for junior coders. But Python will only get you so far, says Grimm. "Python is a good first step, but when you want to go deep into programming, you need to learn C++," he says. "Someone has to implement the infrastructure. Python is often only a wrapper around the C++ code."

C++ or Rust?​

There's also Rust, which is the up-and-coming low latency language and is particularly popular in the crypto space. Grimm is admiring of Rust. As a recent language, it avoids many of the pitfalls of C++ which he says was "designed with a mindset which no longer fits." This includes concurrency, polymorphism and memory management. "When they designed Rust, they did it right by design," says Grimm. "In C++ we have to improve the functionality with updates that extend the language."

Despite Rust's inherent advantages, Grimm says there's little chance it will replace C++ in the short term. It's simply too new. "Rust is not mature enough and cannot be certified," he says. One day, it might be a rival, but for the moment, he says learning C++ remains by far your best bet.
c-future.jpeg


By Sarah Butcher
 
Last edited:
have you experienced with Scala?
I have heard good thing about Scala. Haven't looked into it.
For what I do, 70% is OOP and ~20 functional.
FP is not an objective in itself.
 
Last edited:


Python is great for prototypes, but not so much for building trading systems, says Peacock. "It's almost like a toy language," he says, before quickly correcting himself for fear of upsetting Python developers. "- Python is a serious language, but it's a tool that has its place. You can use it for building quick prototypes, but it's not a language that has the level of robustness that you'd want if you're trading billions of dollars."
 
For someone with strong C++ background (multi-threading, network programming, low-latency, embedded assmebly etc), but no finance background -- is it feasible to break into c++ devloper roles in Finance? I hear that unless you are from MIT, Caltech schools -- it isnt easy. Insights appreciated.
 
For someone with strong C++ background (multi-threading, network programming, low-latency, embedded assmebly etc), but no finance background -- is it feasible to break into c++ devloper roles in Finance? I hear that unless you are from MIT, Caltech schools -- it isnt easy. Insights appreciated.
There are many people in finance who are not from these universities.
 
Back
Top