SlideShare ist ein Scribd-Unternehmen logo
1 von 40
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Ähnlich wie Arnaud Porterie - The Truth About C++

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
 
Tools for artificial intelligence: EXP3, Zermelo algorithm, Alpha-Beta, and s...
Tools for artificial intelligence: EXP3, Zermelo algorithm, Alpha-Beta, and s...Tools for artificial intelligence: EXP3, Zermelo algorithm, Alpha-Beta, and s...
Tools for artificial intelligence: EXP3, Zermelo algorithm, Alpha-Beta, and s...
Olivier Teytaud
 
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
 

Ähnlich wie 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
 
Tools for artificial intelligence: EXP3, Zermelo algorithm, Alpha-Beta, and s...
Tools for artificial intelligence: EXP3, Zermelo algorithm, Alpha-Beta, and s...Tools for artificial intelligence: EXP3, Zermelo algorithm, Alpha-Beta, and s...
Tools for artificial intelligence: EXP3, Zermelo algorithm, Alpha-Beta, and s...
 
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
 
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
 
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
 

Mehr von 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
 

Kürzlich hochgeladen

Kürzlich hochgeladen (20)

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

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