![Page 1: Dmitrii Dolzhenko: “С++ 2017 and Beyond, Deliberate Choice of Programming Language”](https://reader035.vdocument.in/reader035/viewer/2022062823/587463571a28abab198b5ca1/html5/thumbnails/1.jpg)
www.luxoft.com
С++ 2017 and beyondAwareness of choice
Dmitry Dolzhenko13-010-2016
![Page 2: Dmitrii Dolzhenko: “С++ 2017 and Beyond, Deliberate Choice of Programming Language”](https://reader035.vdocument.in/reader035/viewer/2022062823/587463571a28abab198b5ca1/html5/thumbnails/2.jpg)
www.luxoft.com
About:
Algorithms, Numeric algorithms, Optimization Automatic formal math verification systems Computer vision, Machine learning Large-scale software architecture Code optimization Failsafe software development Planning, Robotics, Autonomous driving
![Page 3: Dmitrii Dolzhenko: “С++ 2017 and Beyond, Deliberate Choice of Programming Language”](https://reader035.vdocument.in/reader035/viewer/2022062823/587463571a28abab198b5ca1/html5/thumbnails/3.jpg)
www.luxoft.com
Highlight
Why we select C++ first time? Raiting Problems Benefits Our place in a world
3
![Page 4: Dmitrii Dolzhenko: “С++ 2017 and Beyond, Deliberate Choice of Programming Language”](https://reader035.vdocument.in/reader035/viewer/2022062823/587463571a28abab198b5ca1/html5/thumbnails/4.jpg)
www.luxoft.com
Why we select C++ first time?
First language we learn in university Some expressions seems to be elegant Dozens of “cool” features! Cool it has operator overloading! Shorter expressions than ones from Pascal All benefits of C and more! All benefits of Java OOP and more! It can do everything Java can but faster!
4
![Page 5: Dmitrii Dolzhenko: “С++ 2017 and Beyond, Deliberate Choice of Programming Language”](https://reader035.vdocument.in/reader035/viewer/2022062823/587463571a28abab198b5ca1/html5/thumbnails/5.jpg)
www.luxoft.com
How we feel talking to other developers:
5
![Page 6: Dmitrii Dolzhenko: “С++ 2017 and Beyond, Deliberate Choice of Programming Language”](https://reader035.vdocument.in/reader035/viewer/2022062823/587463571a28abab198b5ca1/html5/thumbnails/6.jpg)
www.luxoft.com
It seems to be easier than it really is
6
![Page 7: Dmitrii Dolzhenko: “С++ 2017 and Beyond, Deliberate Choice of Programming Language”](https://reader035.vdocument.in/reader035/viewer/2022062823/587463571a28abab198b5ca1/html5/thumbnails/7.jpg)
www.luxoft.com
And suddenly:
7
![Page 8: Dmitrii Dolzhenko: “С++ 2017 and Beyond, Deliberate Choice of Programming Language”](https://reader035.vdocument.in/reader035/viewer/2022062823/587463571a28abab198b5ca1/html5/thumbnails/8.jpg)
www.luxoft.com
And suddenly:
8
![Page 9: Dmitrii Dolzhenko: “С++ 2017 and Beyond, Deliberate Choice of Programming Language”](https://reader035.vdocument.in/reader035/viewer/2022062823/587463571a28abab198b5ca1/html5/thumbnails/9.jpg)
www.luxoft.com 9
![Page 10: Dmitrii Dolzhenko: “С++ 2017 and Beyond, Deliberate Choice of Programming Language”](https://reader035.vdocument.in/reader035/viewer/2022062823/587463571a28abab198b5ca1/html5/thumbnails/10.jpg)
www.luxoft.com
TIOBE:
![Page 11: Dmitrii Dolzhenko: “С++ 2017 and Beyond, Deliberate Choice of Programming Language”](https://reader035.vdocument.in/reader035/viewer/2022062823/587463571a28abab198b5ca1/html5/thumbnails/11.jpg)
www.luxoft.com
![Page 12: Dmitrii Dolzhenko: “С++ 2017 and Beyond, Deliberate Choice of Programming Language”](https://reader035.vdocument.in/reader035/viewer/2022062823/587463571a28abab198b5ca1/html5/thumbnails/12.jpg)
www.luxoft.com
Problems
Learning curveHighest cost of error
Mixed abstraction levelsNo modules
No package managerInsane Metaprogramming
stl is too low levelBest libraries are crazy complicated (boost, Eigen)
Hard to find library you need
![Page 13: Dmitrii Dolzhenko: “С++ 2017 and Beyond, Deliberate Choice of Programming Language”](https://reader035.vdocument.in/reader035/viewer/2022062823/587463571a28abab198b5ca1/html5/thumbnails/13.jpg)
www.luxoft.com 13
![Page 14: Dmitrii Dolzhenko: “С++ 2017 and Beyond, Deliberate Choice of Programming Language”](https://reader035.vdocument.in/reader035/viewer/2022062823/587463571a28abab198b5ca1/html5/thumbnails/14.jpg)
www.luxoft.com
Mixed abstraction levels:
You can write asm inline code You can use pointers
You can use C style allocationYou can use OOP
You can use lambda closuresAnd you can do it at the same time!
![Page 15: Dmitrii Dolzhenko: “С++ 2017 and Beyond, Deliberate Choice of Programming Language”](https://reader035.vdocument.in/reader035/viewer/2022062823/587463571a28abab198b5ca1/html5/thumbnails/15.jpg)
www.luxoft.com
No modules:
Long compilation timeCompile all the library per CPP
No module encapsulationOld-school preprocessor
Namespace crutchHard to develop package manager
![Page 16: Dmitrii Dolzhenko: “С++ 2017 and Beyond, Deliberate Choice of Programming Language”](https://reader035.vdocument.in/reader035/viewer/2022062823/587463571a28abab198b5ca1/html5/thumbnails/16.jpg)
www.luxoft.com
No package manager:
Problem
pip install my-
problem-
solver
Solutio
n
![Page 17: Dmitrii Dolzhenko: “С++ 2017 and Beyond, Deliberate Choice of Programming Language”](https://reader035.vdocument.in/reader035/viewer/2022062823/587463571a28abab198b5ca1/html5/thumbnails/17.jpg)
www.luxoft.com
Benefits (development):
We can write fast upper level codeWe can write low level code if we need one
Hardcore speed optimizationHardcore memory usage optimization
RAIITemplates are real not just polymorphic wrappers
Real time softwareVery good optimizing compilers
![Page 18: Dmitrii Dolzhenko: “С++ 2017 and Beyond, Deliberate Choice of Programming Language”](https://reader035.vdocument.in/reader035/viewer/2022062823/587463571a28abab198b5ca1/html5/thumbnails/18.jpg)
www.luxoft.com
Benefits (architecture):
Predictable memory usagePredictable reaction time
Embeddable almost anywhereA lot of code already written in C and C++ can
be usedCan write low level code (device drivers,
controllers)
![Page 19: Dmitrii Dolzhenko: “С++ 2017 and Beyond, Deliberate Choice of Programming Language”](https://reader035.vdocument.in/reader035/viewer/2022062823/587463571a28abab198b5ca1/html5/thumbnails/19.jpg)
www.luxoft.com
Where C++ is used:
![Page 20: Dmitrii Dolzhenko: “С++ 2017 and Beyond, Deliberate Choice of Programming Language”](https://reader035.vdocument.in/reader035/viewer/2022062823/587463571a28abab198b5ca1/html5/thumbnails/20.jpg)
www.luxoft.com
Web browsers engines:
![Page 21: Dmitrii Dolzhenko: “С++ 2017 and Beyond, Deliberate Choice of Programming Language”](https://reader035.vdocument.in/reader035/viewer/2022062823/587463571a28abab198b5ca1/html5/thumbnails/21.jpg)
www.luxoft.com
Operating systems:
![Page 22: Dmitrii Dolzhenko: “С++ 2017 and Beyond, Deliberate Choice of Programming Language”](https://reader035.vdocument.in/reader035/viewer/2022062823/587463571a28abab198b5ca1/html5/thumbnails/22.jpg)
www.luxoft.com
Real time or fast image processing:
![Page 23: Dmitrii Dolzhenko: “С++ 2017 and Beyond, Deliberate Choice of Programming Language”](https://reader035.vdocument.in/reader035/viewer/2022062823/587463571a28abab198b5ca1/html5/thumbnails/23.jpg)
www.luxoft.com
3d photorealistic rendering:
![Page 24: Dmitrii Dolzhenko: “С++ 2017 and Beyond, Deliberate Choice of Programming Language”](https://reader035.vdocument.in/reader035/viewer/2022062823/587463571a28abab198b5ca1/html5/thumbnails/24.jpg)
www.luxoft.com
3d game engines:
![Page 25: Dmitrii Dolzhenko: “С++ 2017 and Beyond, Deliberate Choice of Programming Language”](https://reader035.vdocument.in/reader035/viewer/2022062823/587463571a28abab198b5ca1/html5/thumbnails/25.jpg)
www.luxoft.com
CAD CAM:
![Page 26: Dmitrii Dolzhenko: “С++ 2017 and Beyond, Deliberate Choice of Programming Language”](https://reader035.vdocument.in/reader035/viewer/2022062823/587463571a28abab198b5ca1/html5/thumbnails/26.jpg)
www.luxoft.com
Embedded software (shared with C):
![Page 27: Dmitrii Dolzhenko: “С++ 2017 and Beyond, Deliberate Choice of Programming Language”](https://reader035.vdocument.in/reader035/viewer/2022062823/587463571a28abab198b5ca1/html5/thumbnails/27.jpg)
www.luxoft.com
Deeplearning:
![Page 28: Dmitrii Dolzhenko: “С++ 2017 and Beyond, Deliberate Choice of Programming Language”](https://reader035.vdocument.in/reader035/viewer/2022062823/587463571a28abab198b5ca1/html5/thumbnails/28.jpg)
www.luxoft.com
Automotive software:
![Page 29: Dmitrii Dolzhenko: “С++ 2017 and Beyond, Deliberate Choice of Programming Language”](https://reader035.vdocument.in/reader035/viewer/2022062823/587463571a28abab198b5ca1/html5/thumbnails/29.jpg)
www.luxoft.com
Smart city infrastructure:
![Page 30: Dmitrii Dolzhenko: “С++ 2017 and Beyond, Deliberate Choice of Programming Language”](https://reader035.vdocument.in/reader035/viewer/2022062823/587463571a28abab198b5ca1/html5/thumbnails/30.jpg)
www.luxoft.com
Autonomous driving software:
![Page 31: Dmitrii Dolzhenko: “С++ 2017 and Beyond, Deliberate Choice of Programming Language”](https://reader035.vdocument.in/reader035/viewer/2022062823/587463571a28abab198b5ca1/html5/thumbnails/31.jpg)
www.luxoft.com
NASA:
![Page 32: Dmitrii Dolzhenko: “С++ 2017 and Beyond, Deliberate Choice of Programming Language”](https://reader035.vdocument.in/reader035/viewer/2022062823/587463571a28abab198b5ca1/html5/thumbnails/32.jpg)
www.luxoft.com
SpaceX:
![Page 33: Dmitrii Dolzhenko: “С++ 2017 and Beyond, Deliberate Choice of Programming Language”](https://reader035.vdocument.in/reader035/viewer/2022062823/587463571a28abab198b5ca1/html5/thumbnails/33.jpg)
www.luxoft.com
Thank you