Date post: | 10-Jan-2017 |
Category: |
Software |
Upload: | logeeknightukraine |
View: | 30 times |
Download: | 2 times |
www.luxoft.com
С++ 2017 and beyondAwareness of choice
Dmitry Dolzhenko13-010-2016
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
www.luxoft.com
Highlight
Why we select C++ first time? Raiting Problems Benefits Our place in a world
3
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
www.luxoft.com
How we feel talking to other developers:
5
www.luxoft.com
It seems to be easier than it really is
6
www.luxoft.com
And suddenly:
7
www.luxoft.com
And suddenly:
8
www.luxoft.com 9
www.luxoft.com
TIOBE:
www.luxoft.com
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
www.luxoft.com 13
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!
www.luxoft.com
No modules:
Long compilation timeCompile all the library per CPP
No module encapsulationOld-school preprocessor
Namespace crutchHard to develop package manager
www.luxoft.com
No package manager:
Problem
pip install my-
problem-
solver
Solutio
n
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
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)
www.luxoft.com
Where C++ is used:
www.luxoft.com
Web browsers engines:
www.luxoft.com
Operating systems:
www.luxoft.com
Real time or fast image processing:
www.luxoft.com
3d photorealistic rendering:
www.luxoft.com
3d game engines:
www.luxoft.com
CAD CAM:
www.luxoft.com
Embedded software (shared with C):
www.luxoft.com
Deeplearning:
www.luxoft.com
Automotive software:
www.luxoft.com
Smart city infrastructure:
www.luxoft.com
Autonomous driving software:
www.luxoft.com
NASA:
www.luxoft.com
SpaceX:
www.luxoft.com
Thank you