SlideShare a Scribd company logo
The

*
truth

about C++

* Commonly accepted among a representative population of 1

Arnaud Porterie – While42 Paris – 20130912
Thursday, September 12, 13
Who am I?
• Arnaud Porterie - @icecrime
• Epitech 2007
• Mostly worked with C++ since then

Thursday, September 12, 13
Objectives of this talk

Thursday, September 12, 13
Objectives of this talk
• Discuss common misconceptions

Thursday, September 12, 13
Objectives of this talk
• Discuss common misconceptions
• Understand the recent hype

Thursday, September 12, 13
Objectives of this talk
• Discuss common misconceptions
• Understand the recent hype
• Show that C++ has a (bright) future

Thursday, September 12, 13
Objectives of this talk
• Discuss common misconceptions
• Understand the recent hype
• Show that C++ has a (bright) future
• In less than 1/2h

Thursday, September 12, 13
Objectives of this talk
• Discuss common misconceptions
• Understand the recent hype
• Show that C++ has a (bright) future
• In less than 1/2h
• Without showing code
Thursday, September 12, 13
C++ misconceptions

Thursday, September 12, 13
#1 - C++ never evolves

Thursday, September 12, 13
C++98

C++03

2002
1998

2005

2007

2003
C# 1.0

Thursday, September 12, 13

C++11

2010

2013

2011
C# 2.0 C# 3.0

C# 4.0

C# 5.0
13 years for a new C++?

Thursday, September 12, 13
Evolution didn’t wait for a
new standard
• C++ changed radically in the past decade
• So called “Modern C++”
• “Modern C++ design”, A. Alexandrescu, 2001
• Boost library, the standard’s sandbox

Thursday, September 12, 13
• Community driven evolution
• Committee standardized already widely
adopted libraries

• C++11 also adds many new language
features and libraries

Thursday, September 12, 13
#2 - C++ is about manual
memory management

Thursday, September 12, 13
C++ greatest myth
• If you delete, you’re doing it wrong
• RAII is C++ most important idiom
• The stack is fast and foolproof
• std::shared_ptr, std::unique_ptr, ...

Thursday, September 12, 13
Pro tip #1
Want to test if someone knows C++?

Thursday, September 12, 13
Pro tip #1
Want to test if someone knows C++?
Ask about memory management.

Thursday, September 12, 13
Pro tip #2
Just ignore any wrong answer to #1.

Thursday, September 12, 13
Pro tip #2
Just ignore any wrong answer to #1.
You’ll never recruit anyone.

Thursday, September 12, 13
#3 - C++ is too hard

Thursday, September 12, 13
Can’t really deny that...

Thursday, September 12, 13
It’s not getting any better
• ISO/IEC 14882:2003: 786 pages
• ISO/IEC 14882:2011: 1328 pages
• C++11 is supposedly more accessible
• I say C++11 can’t properly be used without
a good understanding of C++03

Thursday, September 12, 13
Multi-paradigm language
• Procedural
• Generic
• Functional
• Object-oriented
• Variety does not make things easier for the
newcomer

Thursday, September 12, 13
So, is C++ is back?

Thursday, September 12, 13
• Was it ever gone?
• The world is built on C++!
• One thing has changed: C++ is back as a

first class language in Microsoft’s strategy

Thursday, September 12, 13
What future for C++ ?

Thursday, September 12, 13
Choosing C++ is a case of
premature optimization
– Miguel de Icaza
Xamarin CTO & level 60 troll

Thursday, September 12, 13
• The tradeoff between productivity and
control is not as huge as most believe

• The real question is: today, are there that

many problems that justify the extra effort?

Thursday, September 12, 13
Phase/trend

Major constraints

2x efficient apps runs...

1950s - 1990s
Compute-constrainted

Processor

2x compute speed
2x users

1995ish - 2007ish
Surplus local compute +
low UI innovation (WIMP)

Programmer time

n/a

200x Mobile

Processor
Power (battery life)

2x compute speed
2x battery life

2009 Cloud

Power (31%)
Server HW (57%)

0.5x power
0.5x nodes

2009 Heterogeneous cores,
GPGPU

Power (dark silicon)
Processor

0.5x power
2x compute speed

Shamelessly stolen from Herb Sutter’s “Not your father’s C++” talk

Thursday, September 12, 13
Phase/trend

Major constraints

2x efficient apps runs...

1950s - 1990s
Compute-constrainted

Processor

2x compute speed
2x users

1995ish - 2007ish
Surplus local compute +
low UI innovation (WIMP)

Programmer time

n/a

200x Mobile

Processor
Power (battery life)

2x compute speed
2x battery life

2009 Cloud

Power (31%)
Server HW (57%)

0.5x power
0.5x nodes

2009 Heterogeneous cores,
GPGPU

Power (dark silicon)
Processor

0.5x power
2x compute speed

Shamelessly stolen from Herb Sutter’s “Not your father’s C++” talk

Thursday, September 12, 13
Phase/trend

Major constraints

2x efficient apps runs...

1950s - 1990s
Compute-constrainted

Processor

2x compute speed
2x users

1995ish - 2007ish
Surplus local compute +
low UI innovation (WIMP)

Programmer time

n/a

200x Mobile

Processor
Power (battery life)

2x compute speed
2x battery life

2009 Cloud

Power (31%)
Server HW (57%)

0.5x power
0.5x nodes

2009 Heterogeneous cores,
GPGPU

Power (dark silicon)
Processor

0.5x power
2x compute speed

Shamelessly stolen from Herb Sutter’s “Not your father’s C++” talk

Thursday, September 12, 13
Phase/trend

Major constraints

2x efficient apps runs...

1950s - 1990s
Compute-constrainted

Processor

2x compute speed
2x users

1995ish - 2007ish
Surplus local compute +
low UI innovation (WIMP)

Programmer time

n/a

200x Mobile

Processor
Power (battery life)

2x compute speed
2x battery life

2009 Cloud

Power (31%)
Server HW (57%)

0.5x power
0.5x nodes

2009 Heterogeneous cores,
GPGPU

Power (dark silicon)
Processor

0.5x power
2x compute speed

Shamelessly stolen from Herb Sutter’s “Not your father’s C++” talk

Thursday, September 12, 13
Phase/trend

Major constraints

2x efficient apps runs...

1950s - 1990s
Compute-constrainted

Processor

2x compute speed
2x users

1995ish - 2007ish
Surplus local compute +
low UI innovation (WIMP)

Programmer time

n/a

200x Mobile

Processor
Power (battery life)

2x compute speed
2x battery life

2009 Cloud

Power (31%)
Server HW (57%)

0.5x power
0.5x nodes

2009 Heterogeneous cores,
GPGPU

Power (dark silicon)
Processor

0.5x power
2x compute speed

Shamelessly stolen from Herb Sutter’s “Not your father’s C++” talk

Thursday, September 12, 13
Phase/trend

Major constraints

2x efficient apps runs...

1950s - 1990s
Compute-constrainted

Processor

2x compute speed
2x users

1995ish - 2007ish
Surplus local compute +
low UI innovation (WIMP)

Programmer time

n/a

200x Mobile

Processor
Power (battery life)

2x compute speed
2x battery life

2009 Cloud

Power (31%)
Server HW (57%)

0.5x power
0.5x nodes

2009 Heterogeneous cores,
GPGPU

Power (dark silicon)
Processor

0.5x power
2x compute speed

Shamelessly stolen from Herb Sutter’s “Not your father’s C++” talk

Thursday, September 12, 13
Find your biggest cost,
and optimize for that

Thursday, September 12, 13
Example - Facebook

Thursday, September 12, 13
• Hip Hop Compiler
• HHVM JIT Compiler
• 5x faster than the interpreter

Thursday, September 12, 13
There are only two kinds of
language: the ones people complain
about and the ones nobody uses
– Bjarne Stroustrup

Thursday, September 12, 13
Questions?

Thursday, September 12, 13

More Related Content

Similar to Arnaud Porterie - The Truth About C++

GoTo Amsterdam 2013 Skinned
GoTo Amsterdam 2013 SkinnedGoTo Amsterdam 2013 Skinned
GoTo Amsterdam 2013 Skinned
MapR Technologies
 
Raspberry pi history, tips and use case
Raspberry pi history, tips and use caseRaspberry pi history, tips and use case
Raspberry pi history, tips and use case
Masafumi Ohta
 
14 turing wics
14 turing wics14 turing wics
14 turing wics
ashish61_scs
 
Using R for the internet of things
Using R for the internet of thingsUsing R for the internet of things
Using R for the internet of things
cdhowe
 
The Ever So Slighty Geeky Quiz With Maybe
The Ever So Slighty Geeky Quiz With MaybeThe Ever So Slighty Geeky Quiz With Maybe
The Ever So Slighty Geeky Quiz With Maybe
Amanda Jackson
 
Making the Most of In-Memory: More than Speed
Making the Most of In-Memory: More than SpeedMaking the Most of In-Memory: More than Speed
Making the Most of In-Memory: More than Speed
Inside Analysis
 
The joy of computer graphics programming
The joy of computer graphics programmingThe joy of computer graphics programming
The joy of computer graphics programming
Bruno Levy
 
Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"
Christian Heilmann
 
Agile Data: revolutionizing data and database cloning
Agile Data: revolutionizing data and database cloningAgile Data: revolutionizing data and database cloning
Agile Data: revolutionizing data and database cloning
Kyle Hailey
 
2013: Trends from the Trenches
2013: Trends from the Trenches2013: Trends from the Trenches
2013: Trends from the Trenches
Chris Dagdigian
 
The Data Janitor Returns | Daniel Molnar | DN18
The Data Janitor Returns | Daniel Molnar | DN18The Data Janitor Returns | Daniel Molnar | DN18
The Data Janitor Returns | Daniel Molnar | DN18
DataconomyGmbH
 
DN18 | The Data Janitor Returns | Daniel Molnar | Oberlo/Shopify
DN18 | The Data Janitor Returns | Daniel Molnar | Oberlo/Shopify DN18 | The Data Janitor Returns | Daniel Molnar | Oberlo/Shopify
DN18 | The Data Janitor Returns | Daniel Molnar | Oberlo/Shopify
Dataconomy Media
 
PenLUG Talk: Fast, Cheap, and Out of Control
PenLUG Talk: Fast, Cheap, and Out of ControlPenLUG Talk: Fast, Cheap, and Out of Control
PenLUG Talk: Fast, Cheap, and Out of Control
David E. Weekly
 
Tools for artificial intelligence
Tools for artificial intelligenceTools for artificial intelligence
Tools for artificial intelligence
Olivier Teytaud
 
What's Now - Gustavo Carriquiry
What's Now - Gustavo CarriquiryWhat's Now - Gustavo Carriquiry
What's Now - Gustavo Carriquiry
GeneXus
 
Buzz words-dunning-real-time-learning
Buzz words-dunning-real-time-learningBuzz words-dunning-real-time-learning
Buzz words-dunning-real-time-learning
Ted Dunning
 
[241] AI 칩 개발에 사용되는 엔지니어링
[241] AI 칩 개발에 사용되는 엔지니어링[241] AI 칩 개발에 사용되는 엔지니어링
[241] AI 칩 개발에 사용되는 엔지니어링
NAVER D2
 
Increasing Personal Productivity with Getting Things Done(r)
Increasing Personal Productivity with Getting Things Done(r)Increasing Personal Productivity with Getting Things Done(r)
Increasing Personal Productivity with Getting Things Done(r)
James Martin
 
What Ops Can Learn From Design
What Ops Can Learn From DesignWhat Ops Can Learn From Design
What Ops Can Learn From Design
Robert Treat
 
Killing the golden calf of coding - We are Developers keynote
Killing the golden calf of coding - We are Developers keynoteKilling the golden calf of coding - We are Developers keynote
Killing the golden calf of coding - We are Developers keynote
Christian Heilmann
 

Similar to Arnaud Porterie - The Truth About C++ (20)

GoTo Amsterdam 2013 Skinned
GoTo Amsterdam 2013 SkinnedGoTo Amsterdam 2013 Skinned
GoTo Amsterdam 2013 Skinned
 
Raspberry pi history, tips and use case
Raspberry pi history, tips and use caseRaspberry pi history, tips and use case
Raspberry pi history, tips and use case
 
14 turing wics
14 turing wics14 turing wics
14 turing wics
 
Using R for the internet of things
Using R for the internet of thingsUsing R for the internet of things
Using R for the internet of things
 
The Ever So Slighty Geeky Quiz With Maybe
The Ever So Slighty Geeky Quiz With MaybeThe Ever So Slighty Geeky Quiz With Maybe
The Ever So Slighty Geeky Quiz With Maybe
 
Making the Most of In-Memory: More than Speed
Making the Most of In-Memory: More than SpeedMaking the Most of In-Memory: More than Speed
Making the Most of In-Memory: More than Speed
 
The joy of computer graphics programming
The joy of computer graphics programmingThe joy of computer graphics programming
The joy of computer graphics programming
 
Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"
 
Agile Data: revolutionizing data and database cloning
Agile Data: revolutionizing data and database cloningAgile Data: revolutionizing data and database cloning
Agile Data: revolutionizing data and database cloning
 
2013: Trends from the Trenches
2013: Trends from the Trenches2013: Trends from the Trenches
2013: Trends from the Trenches
 
The Data Janitor Returns | Daniel Molnar | DN18
The Data Janitor Returns | Daniel Molnar | DN18The Data Janitor Returns | Daniel Molnar | DN18
The Data Janitor Returns | Daniel Molnar | DN18
 
DN18 | The Data Janitor Returns | Daniel Molnar | Oberlo/Shopify
DN18 | The Data Janitor Returns | Daniel Molnar | Oberlo/Shopify DN18 | The Data Janitor Returns | Daniel Molnar | Oberlo/Shopify
DN18 | The Data Janitor Returns | Daniel Molnar | Oberlo/Shopify
 
PenLUG Talk: Fast, Cheap, and Out of Control
PenLUG Talk: Fast, Cheap, and Out of ControlPenLUG Talk: Fast, Cheap, and Out of Control
PenLUG Talk: Fast, Cheap, and Out of Control
 
Tools for artificial intelligence
Tools for artificial intelligenceTools for artificial intelligence
Tools for artificial intelligence
 
What's Now - Gustavo Carriquiry
What's Now - Gustavo CarriquiryWhat's Now - Gustavo Carriquiry
What's Now - Gustavo Carriquiry
 
Buzz words-dunning-real-time-learning
Buzz words-dunning-real-time-learningBuzz words-dunning-real-time-learning
Buzz words-dunning-real-time-learning
 
[241] AI 칩 개발에 사용되는 엔지니어링
[241] AI 칩 개발에 사용되는 엔지니어링[241] AI 칩 개발에 사용되는 엔지니어링
[241] AI 칩 개발에 사용되는 엔지니어링
 
Increasing Personal Productivity with Getting Things Done(r)
Increasing Personal Productivity with Getting Things Done(r)Increasing Personal Productivity with Getting Things Done(r)
Increasing Personal Productivity with Getting Things Done(r)
 
What Ops Can Learn From Design
What Ops Can Learn From DesignWhat Ops Can Learn From Design
What Ops Can Learn From Design
 
Killing the golden calf of coding - We are Developers keynote
Killing the golden calf of coding - We are Developers keynoteKilling the golden calf of coding - We are Developers keynote
Killing the golden calf of coding - We are Developers keynote
 

More from Arnaud Porterie

Docker Barcelona Meetup - An Introduction to BuildKit
Docker Barcelona Meetup - An Introduction to BuildKitDocker Barcelona Meetup - An Introduction to BuildKit
Docker Barcelona Meetup - An Introduction to BuildKit
Arnaud Porterie
 
Building software: the lessons from open source
Building software: the lessons from open sourceBuilding software: the lessons from open source
Building software: the lessons from open source
Arnaud Porterie
 
DockerCon EU 2015 - Windows Server Containers
DockerCon EU 2015 - Windows Server ContainersDockerCon EU 2015 - Windows Server Containers
DockerCon EU 2015 - Windows Server Containers
Arnaud Porterie
 
DockerCon US 2015 - Engine Breakout Session
DockerCon US 2015 - Engine Breakout SessionDockerCon US 2015 - Engine Breakout Session
DockerCon US 2015 - Engine Breakout Session
Arnaud Porterie
 
DockerCon EU 2015 - The Latest on Docker Engine
DockerCon EU 2015 - The Latest on Docker EngineDockerCon EU 2015 - The Latest on Docker Engine
DockerCon EU 2015 - The Latest on Docker Engine
Arnaud Porterie
 
Abusing text/template for data transformation
Abusing text/template for data transformationAbusing text/template for data transformation
Abusing text/template for data transformation
Arnaud Porterie
 

More from Arnaud Porterie (6)

Docker Barcelona Meetup - An Introduction to BuildKit
Docker Barcelona Meetup - An Introduction to BuildKitDocker Barcelona Meetup - An Introduction to BuildKit
Docker Barcelona Meetup - An Introduction to BuildKit
 
Building software: the lessons from open source
Building software: the lessons from open sourceBuilding software: the lessons from open source
Building software: the lessons from open source
 
DockerCon EU 2015 - Windows Server Containers
DockerCon EU 2015 - Windows Server ContainersDockerCon EU 2015 - Windows Server Containers
DockerCon EU 2015 - Windows Server Containers
 
DockerCon US 2015 - Engine Breakout Session
DockerCon US 2015 - Engine Breakout SessionDockerCon US 2015 - Engine Breakout Session
DockerCon US 2015 - Engine Breakout Session
 
DockerCon EU 2015 - The Latest on Docker Engine
DockerCon EU 2015 - The Latest on Docker EngineDockerCon EU 2015 - The Latest on Docker Engine
DockerCon EU 2015 - The Latest on Docker Engine
 
Abusing text/template for data transformation
Abusing text/template for data transformationAbusing text/template for data transformation
Abusing text/template for data transformation
 

Recently uploaded

Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
Miro Wengner
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
 
GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)
Javier Junquera
 
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
Hiike
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Jeffrey Haguewood
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
alexjohnson7307
 
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3
FREE A4 Cyber Security Awareness  Posters-Social Engineering part 3FREE A4 Cyber Security Awareness  Posters-Social Engineering part 3
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3
Data Hops
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
HarisZaheer8
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
Dinusha Kumarasiri
 

Recently uploaded (20)

Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
 
GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)
 
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
 
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3
FREE A4 Cyber Security Awareness  Posters-Social Engineering part 3FREE A4 Cyber Security Awareness  Posters-Social Engineering part 3
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
 

Arnaud Porterie - The Truth About C++

  • 1. The * truth about C++ * Commonly accepted among a representative population of 1 Arnaud Porterie – While42 Paris – 20130912 Thursday, September 12, 13
  • 2. Who am I? • Arnaud Porterie - @icecrime • Epitech 2007 • Mostly worked with C++ since then Thursday, September 12, 13
  • 3. Objectives of this talk Thursday, September 12, 13
  • 4. Objectives of this talk • Discuss common misconceptions Thursday, September 12, 13
  • 5. Objectives of this talk • Discuss common misconceptions • Understand the recent hype Thursday, September 12, 13
  • 6. Objectives of this talk • Discuss common misconceptions • Understand the recent hype • Show that C++ has a (bright) future Thursday, September 12, 13
  • 7. Objectives of this talk • Discuss common misconceptions • Understand the recent hype • Show that C++ has a (bright) future • In less than 1/2h Thursday, September 12, 13
  • 8. Objectives of this talk • Discuss common misconceptions • Understand the recent hype • Show that C++ has a (bright) future • In less than 1/2h • Without showing code Thursday, September 12, 13
  • 10. #1 - C++ never evolves Thursday, September 12, 13
  • 11. C++98 C++03 2002 1998 2005 2007 2003 C# 1.0 Thursday, September 12, 13 C++11 2010 2013 2011 C# 2.0 C# 3.0 C# 4.0 C# 5.0
  • 12. 13 years for a new C++? Thursday, September 12, 13
  • 13. Evolution didn’t wait for a new standard • C++ changed radically in the past decade • So called “Modern C++” • “Modern C++ design”, A. Alexandrescu, 2001 • Boost library, the standard’s sandbox Thursday, September 12, 13
  • 14. • Community driven evolution • Committee standardized already widely adopted libraries • C++11 also adds many new language features and libraries Thursday, September 12, 13
  • 15. #2 - C++ is about manual memory management Thursday, September 12, 13
  • 16. C++ greatest myth • If you delete, you’re doing it wrong • RAII is C++ most important idiom • The stack is fast and foolproof • std::shared_ptr, std::unique_ptr, ... Thursday, September 12, 13
  • 17. Pro tip #1 Want to test if someone knows C++? Thursday, September 12, 13
  • 18. Pro tip #1 Want to test if someone knows C++? Ask about memory management. Thursday, September 12, 13
  • 19. Pro tip #2 Just ignore any wrong answer to #1. Thursday, September 12, 13
  • 20. Pro tip #2 Just ignore any wrong answer to #1. You’ll never recruit anyone. Thursday, September 12, 13
  • 21. #3 - C++ is too hard Thursday, September 12, 13
  • 22. Can’t really deny that... Thursday, September 12, 13
  • 23. It’s not getting any better • ISO/IEC 14882:2003: 786 pages • ISO/IEC 14882:2011: 1328 pages • C++11 is supposedly more accessible • I say C++11 can’t properly be used without a good understanding of C++03 Thursday, September 12, 13
  • 24. Multi-paradigm language • Procedural • Generic • Functional • Object-oriented • Variety does not make things easier for the newcomer Thursday, September 12, 13
  • 25. So, is C++ is back? Thursday, September 12, 13
  • 26. • Was it ever gone? • The world is built on C++! • One thing has changed: C++ is back as a first class language in Microsoft’s strategy Thursday, September 12, 13
  • 27. What future for C++ ? Thursday, September 12, 13
  • 28. Choosing C++ is a case of premature optimization – Miguel de Icaza Xamarin CTO & level 60 troll Thursday, September 12, 13
  • 29. • The tradeoff between productivity and control is not as huge as most believe • The real question is: today, are there that many problems that justify the extra effort? Thursday, September 12, 13
  • 30. Phase/trend Major constraints 2x efficient apps runs... 1950s - 1990s Compute-constrainted Processor 2x compute speed 2x users 1995ish - 2007ish Surplus local compute + low UI innovation (WIMP) Programmer time n/a 200x Mobile Processor Power (battery life) 2x compute speed 2x battery life 2009 Cloud Power (31%) Server HW (57%) 0.5x power 0.5x nodes 2009 Heterogeneous cores, GPGPU Power (dark silicon) Processor 0.5x power 2x compute speed Shamelessly stolen from Herb Sutter’s “Not your father’s C++” talk Thursday, September 12, 13
  • 31. Phase/trend Major constraints 2x efficient apps runs... 1950s - 1990s Compute-constrainted Processor 2x compute speed 2x users 1995ish - 2007ish Surplus local compute + low UI innovation (WIMP) Programmer time n/a 200x Mobile Processor Power (battery life) 2x compute speed 2x battery life 2009 Cloud Power (31%) Server HW (57%) 0.5x power 0.5x nodes 2009 Heterogeneous cores, GPGPU Power (dark silicon) Processor 0.5x power 2x compute speed Shamelessly stolen from Herb Sutter’s “Not your father’s C++” talk Thursday, September 12, 13
  • 32. Phase/trend Major constraints 2x efficient apps runs... 1950s - 1990s Compute-constrainted Processor 2x compute speed 2x users 1995ish - 2007ish Surplus local compute + low UI innovation (WIMP) Programmer time n/a 200x Mobile Processor Power (battery life) 2x compute speed 2x battery life 2009 Cloud Power (31%) Server HW (57%) 0.5x power 0.5x nodes 2009 Heterogeneous cores, GPGPU Power (dark silicon) Processor 0.5x power 2x compute speed Shamelessly stolen from Herb Sutter’s “Not your father’s C++” talk Thursday, September 12, 13
  • 33. Phase/trend Major constraints 2x efficient apps runs... 1950s - 1990s Compute-constrainted Processor 2x compute speed 2x users 1995ish - 2007ish Surplus local compute + low UI innovation (WIMP) Programmer time n/a 200x Mobile Processor Power (battery life) 2x compute speed 2x battery life 2009 Cloud Power (31%) Server HW (57%) 0.5x power 0.5x nodes 2009 Heterogeneous cores, GPGPU Power (dark silicon) Processor 0.5x power 2x compute speed Shamelessly stolen from Herb Sutter’s “Not your father’s C++” talk Thursday, September 12, 13
  • 34. Phase/trend Major constraints 2x efficient apps runs... 1950s - 1990s Compute-constrainted Processor 2x compute speed 2x users 1995ish - 2007ish Surplus local compute + low UI innovation (WIMP) Programmer time n/a 200x Mobile Processor Power (battery life) 2x compute speed 2x battery life 2009 Cloud Power (31%) Server HW (57%) 0.5x power 0.5x nodes 2009 Heterogeneous cores, GPGPU Power (dark silicon) Processor 0.5x power 2x compute speed Shamelessly stolen from Herb Sutter’s “Not your father’s C++” talk Thursday, September 12, 13
  • 35. Phase/trend Major constraints 2x efficient apps runs... 1950s - 1990s Compute-constrainted Processor 2x compute speed 2x users 1995ish - 2007ish Surplus local compute + low UI innovation (WIMP) Programmer time n/a 200x Mobile Processor Power (battery life) 2x compute speed 2x battery life 2009 Cloud Power (31%) Server HW (57%) 0.5x power 0.5x nodes 2009 Heterogeneous cores, GPGPU Power (dark silicon) Processor 0.5x power 2x compute speed Shamelessly stolen from Herb Sutter’s “Not your father’s C++” talk Thursday, September 12, 13
  • 36. Find your biggest cost, and optimize for that Thursday, September 12, 13
  • 37. Example - Facebook Thursday, September 12, 13
  • 38. • Hip Hop Compiler • HHVM JIT Compiler • 5x faster than the interpreter Thursday, September 12, 13
  • 39. There are only two kinds of language: the ones people complain about and the ones nobody uses – Bjarne Stroustrup Thursday, September 12, 13