2 ms·
I never programmed HFT software, but I agree with the criticism of the modern C++. It’s bad the author hasn’t defined what exactly’s “modern” is. I saw some co
by Const-me 10y ago
I never programmed HFT software, but I agree with the criticism of the modern C++.
It’s bad the author hasn’t defined what exactly’s “modern” is. I saw some comments compared boost with C++/14.
I think boost is also modern. Even Alexandrescu’s Loki is also modern, despite the book was published in 2001.
I think that modern stuff was introduced in C++ because in end 90s-start 2000s there was expectation C++ will remain dominant for some time. There was desire to bring higher-level features to the language, to make it easier to learn and safer to use — even at the cost of performance.
People didn’t expect C++ will lose its market that fast: very few people now use C++ for web apps or rich GUI. However, due to the inertia and backward compatibility, the features remain in the language.
Personally, I’m happy with C++.
C++ is excellent for system programming, also for anything CPU bound. For those you barely need those modern features, and fortunately, they’re completely optional: if you don’t like them, don’t use them.
But if you do need higher-level language for less performance-critical parts of the project, I find it better to use another higher-level language and integrate it with that C++ library. Depending on the platform, such higher-level language could be C#, Lua, Python, or anything else that works for you.