Not your fathers Language 
C++ 
Microsoft 
Senior Technical Evangelist 
김명신
Reality Check
관화 
25% 
스페인어 
13% 
영어 
펀자브어 
힌디어 10% 
9% 
독일어 
3% 
아랍어 
7% 
벵골어 
5% 
러시아어 
5% 
프랑스어 
5% 
포르투칼어 
6% 
일본어 
4% 
한국어 
2% 
우어 
2% 
자와어 
2% 
2%
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
0 20 40 60 80 100 120 140 160 
92 
88 
84 
80 
75 
69 
66 
63 
60 
57 
54 
51 
48 
45 
42 
39 
36 
33 
30 
27 
24 
21 
18 
COUNT 
AGE
0% 10% 20% 30% 40% 50% 60% 
0-4 years 
5-9 years 
10+ years
Gaming, 20% 
Engr/Science, 
15% 
Frameworks, 
Other, 13% 
Business, 12% 
Content, 7% 
Imaging, 7% 
Productivity, 
8% 
Embedded, 8% 10%
WHY C++ ?
Not your fathers language c++
Not your fathers language c++
Efficiency 
BOT-1999 
2009-EOT 
Flexibility Abstraction 
(OO, Generics) 
Productivity 
(Automatic 
Services, Tools) 
C = efficient high-level 
portable code 
struct, functions 
C++ = C+ efficient 
abstraction 
class, templates 
Java, C# = productivity 
Mandatory metadata & GC, 
JIT compilation
Not your fathers language c++
Not your fathers language c++
Mobile
Not your fathers language c++
Not your fathers language c++
Not your fathers language c++
Not your fathers language c++
Datacenter
James Hamilton 
http://perspectives.mvdirona.com/2010/09/18/OverallDataCenterCosts.aspx
Not your fathers language c++
Not your fathers language c++
Not your fathers language c++
Not your fathers language c++
Not your fathers language c++
Not your fathers language c++
Not your fathers language c++
ISCA(The ACM/IEEE International Symposium on Computer Architecture)
Not your fathers language c++
WHY C++ !
Not your fathers language c++
Not your fathers language c++
Windows 8 
~ 
Productivity Performance 
Conformance
Target OS Native Code Managed Code 
Windows 8 O O 
Windows 7 O O 
Windows Vista O O 
Windows XP 이전 O O 
Windows Server 2012 O O 
Windows Server 2008 R2 O O 
Windows Server 2008 O O 
Windows Server 2003 이전 O O 
플랫폼 호환성 및 시스템 요구 사항
Auto Vectorization 
Use vector registers and 
instruction 
(Streaming SIMD Extension 4.2) 
Auto Parallelization 
Conservative in selecting the 
loop 
#pragma loop(hint_parallel(n))
Take 
Advantage of 
data-parallel 
hardware 
AMP Specification
C++11 Core Language Features VC10 VC11 
Rvalue references v2.0 v2.1* 
Lambdas v1.0 v1.1 
decltype v1.0 v1.1** 
auto v1.0 v1.0 
static_Assert Yes Yes 
Trailing return types Yes Yes 
nullptr Yes Yes 
Strongly typed enums Partial Yes 
Forward declared enums No Yes 
Standard-layout and trivial types No Yes 
Atomics No Yes 
Strong compare and exchange No Yes 
Bidirectional fences No Yes 
Data-dependency ordering No Yes 
Range Based for loops No Yes 
Independent “Scary” iterators No Yes 
Lambdas, R-value references 
static_assert 
auto, decltype, nullptr 
Range-based for loops 
Stateless lambdas 
Scoped enumerations 
New STL headers: 
<atomic>, <chrono>, 
<condition_variable>, 
<filesystem>, <future>, <mutex>, 
<ratio>, <thread>
Backwards compatibility 
Browse from Solution Explorer 
Pin & Preview 
Multi-mon 
Search across the IDE. 
Search in tool windows.
Improves code understanding 
Uses the compiler to show accurate matches 
Improves code understanding. 
Aggressive Member list 
Member list filtering 
C++/CLI support. 
Code Snippets
Help manage projects w/ Sprint Planning, 
U… Improved developer productivity 
w/ Code review, E… 
Improved Code coverage 
Better static analysis 
Architecture Tools 
Unit Testing
Not your fathers language c++
Not your fathers language c++

More Related Content

PDF
Cross platform development
PPTX
IronRuby: Ruby on the .NET Platform
PDF
J-Spring 2018 - Angular for Java developers
PDF
Code Nomads meetup June 2018 - Angular for Java developers
PDF
OpenValue meetup July 2018 - Angular for Java developers
PDF
Tweakers Developers Summit 2019 - Angular for backend developers
PDF
Highly Surmountable Challenges in Ruby+OMR JIT Compilation
PDF
A brief intro to RubyMotion
Cross platform development
IronRuby: Ruby on the .NET Platform
J-Spring 2018 - Angular for Java developers
Code Nomads meetup June 2018 - Angular for Java developers
OpenValue meetup July 2018 - Angular for Java developers
Tweakers Developers Summit 2019 - Angular for backend developers
Highly Surmountable Challenges in Ruby+OMR JIT Compilation
A brief intro to RubyMotion

What's hot (20)

PDF
Kotlin for Android Developer - Make our live easier
PPTX
PHP Frameworks, or how I learnt to stop worrying and love the code
PDF
PHP is the King, nodejs the prince and python the fool
PPTX
Rapid With Spring Roo
PPTX
How to Supercharge your PHP Web API
PPTX
Functional Programming in PHP
PDF
PHP is the king, nodejs is the prince and Lua is the fool
PPT
TypeScript for Alfresco and CMIS - Alfresco DevCon 2012 San Jose
PPT
Flex on Grails - Rich Internet Applications With Rapid Application Development
PDF
Overview of Java EE
PPTX
Better java with design
PDF
Swift should I switch?
PPTX
Polyglot
PPTX
Ansible, Idempotency, and Jenkins
PPTX
Why Kotlin?
PPTX
10/29 Austin Ansible MeetUp - AnsibleFest Talk & Extending Ansible
PDF
2021 JCconf TW Going Reactive with Quarkus Kotlin & Arrow-KT
PPTX
Desarrollo multiplataforma con el framework .net
ODP
Elm & Elixir: Functional Programming and Web
PDF
GraalVM - MadridJUG 2019-10-22
Kotlin for Android Developer - Make our live easier
PHP Frameworks, or how I learnt to stop worrying and love the code
PHP is the King, nodejs the prince and python the fool
Rapid With Spring Roo
How to Supercharge your PHP Web API
Functional Programming in PHP
PHP is the king, nodejs is the prince and Lua is the fool
TypeScript for Alfresco and CMIS - Alfresco DevCon 2012 San Jose
Flex on Grails - Rich Internet Applications With Rapid Application Development
Overview of Java EE
Better java with design
Swift should I switch?
Polyglot
Ansible, Idempotency, and Jenkins
Why Kotlin?
10/29 Austin Ansible MeetUp - AnsibleFest Talk & Extending Ansible
2021 JCconf TW Going Reactive with Quarkus Kotlin & Arrow-KT
Desarrollo multiplataforma con el framework .net
Elm & Elixir: Functional Programming and Web
GraalVM - MadridJUG 2019-10-22
Ad

Viewers also liked (18)

KEY
FRT Vol. 4 インサイド・クラウドプラットフォーム
PPS
泰國清邁水燈節 2010.1116 1123
PPS
泰國象島之旅 20091118~20091123
PPS
泰國象島之旅 20091118~20091123
PDF
グローバル IT を生き抜くためのクラウドアプリケーション成功戦略
PDF
パッケージでは実現できない、クラウドアプリケーションの世界観
PDF
仕事の効率が格段にアップするクラウドサービス活用術
PPT
Festa Junina Senac-DF
PPTX
Kint Cat Scratch Fever
PPTX
C#을 이용한 task 병렬화와 비동기 패턴
PDF
イケてるビジネスパーソンは iPad でスケジュールを管理する
KEY
FRT Vol. 6 ソーシャルコラボレーションとスマートフォンが変えるビジネススタイル
KEY
ソーシャルコラボレーションとスマートフォンが変えるビジネススタイル
KEY
FRT Vol. 5 クラウド時代の企業アプリケーションとマーケティング
KEY
iPadはリビングのライフスタイルをChangeする
PPTX
Python 개발자를 위한 최상의 무료 개발 도구 Visual Studio와 Visual Studio Code
PPTX
The Future of C# and .NET Framework
PPSX
B1ch12火山岩溶風成冰河地形
FRT Vol. 4 インサイド・クラウドプラットフォーム
泰國清邁水燈節 2010.1116 1123
泰國象島之旅 20091118~20091123
泰國象島之旅 20091118~20091123
グローバル IT を生き抜くためのクラウドアプリケーション成功戦略
パッケージでは実現できない、クラウドアプリケーションの世界観
仕事の効率が格段にアップするクラウドサービス活用術
Festa Junina Senac-DF
Kint Cat Scratch Fever
C#을 이용한 task 병렬화와 비동기 패턴
イケてるビジネスパーソンは iPad でスケジュールを管理する
FRT Vol. 6 ソーシャルコラボレーションとスマートフォンが変えるビジネススタイル
ソーシャルコラボレーションとスマートフォンが変えるビジネススタイル
FRT Vol. 5 クラウド時代の企業アプリケーションとマーケティング
iPadはリビングのライフスタイルをChangeする
Python 개발자를 위한 최상의 무료 개발 도구 Visual Studio와 Visual Studio Code
The Future of C# and .NET Framework
B1ch12火山岩溶風成冰河地形
Ad

More from 명신 김 (20)

PDF
업무를 빼고 가치를 더하는 클라우드 기술
PPTX
[2020 Ignite Seoul]Azure에서 사용할 수 있는 컨테이너/오케스트레이션 기술 살펴보기
PPTX
Best of Build Seoul 2019 Keynote
PPTX
Passwordless society
PPTX
DevOps and Azure Devops 소개, 동향, 그리고 기대효과
PPTX
Serverless design and adoption
PPTX
Durable functions
PPTX
Azure functions v2 announcement
PPTX
Azure functions
PPTX
Logic apps
PPTX
Serverless
PPTX
Azure event grid
PPTX
Serverless, Azure Functions, Logic Apps
PPTX
Microservices architecture
PPTX
Visual studio 2015를 활용한 개발 생산성 및 코드 품질 혁신
PDF
Connect(); 2016 한시간 총정리
PPTX
크로스 플랫폼을 품은 오픈 소스 프레임워크 .NET Core
PPTX
Coded UI test를 이용한 테스트 자동화
PPTX
VS2015 C++ new features
PPTX
Welcome to the microsoft madness
업무를 빼고 가치를 더하는 클라우드 기술
[2020 Ignite Seoul]Azure에서 사용할 수 있는 컨테이너/오케스트레이션 기술 살펴보기
Best of Build Seoul 2019 Keynote
Passwordless society
DevOps and Azure Devops 소개, 동향, 그리고 기대효과
Serverless design and adoption
Durable functions
Azure functions v2 announcement
Azure functions
Logic apps
Serverless
Azure event grid
Serverless, Azure Functions, Logic Apps
Microservices architecture
Visual studio 2015를 활용한 개발 생산성 및 코드 품질 혁신
Connect(); 2016 한시간 총정리
크로스 플랫폼을 품은 오픈 소스 프레임워크 .NET Core
Coded UI test를 이용한 테스트 자동화
VS2015 C++ new features
Welcome to the microsoft madness

Recently uploaded (20)

PDF
CCleaner 6.39.11548 Crack 2025 License Key
PPTX
MLforCyber_MLDataSetsandFeatures_Presentation.pptx
PPTX
Download Adobe Photoshop Crack 2025 Free
PDF
AI-Powered Threat Modeling: The Future of Cybersecurity by Arun Kumar Elengov...
PDF
AI Guide for Business Growth - Arna Softech
PDF
Practical Indispensable Project Management Tips for Delivering Successful Exp...
PDF
How AI/LLM recommend to you ? GDG meetup 16 Aug by Fariman Guliev
PDF
Wondershare Recoverit Full Crack New Version (Latest 2025)
DOC
UTEP毕业证学历认证,宾夕法尼亚克拉里恩大学毕业证未毕业
PDF
Microsoft Office 365 Crack Download Free
PDF
Guide to Food Delivery App Development.pdf
PDF
How Tridens DevSecOps Ensures Compliance, Security, and Agility
PPTX
Lecture 5 Software Requirement Engineering
PPTX
Cybersecurity: Protecting the Digital World
PPTX
Tech Workshop Escape Room Tech Workshop
PDF
DuckDuckGo Private Browser Premium APK for Android Crack Latest 2025
PDF
Workplace Software and Skills - OpenStax
PDF
The Dynamic Duo Transforming Financial Accounting Systems Through Modern Expe...
PDF
AI/ML Infra Meetup | LLM Agents and Implementation Challenges
PPTX
Matchmaking for JVMs: How to Pick the Perfect GC Partner
CCleaner 6.39.11548 Crack 2025 License Key
MLforCyber_MLDataSetsandFeatures_Presentation.pptx
Download Adobe Photoshop Crack 2025 Free
AI-Powered Threat Modeling: The Future of Cybersecurity by Arun Kumar Elengov...
AI Guide for Business Growth - Arna Softech
Practical Indispensable Project Management Tips for Delivering Successful Exp...
How AI/LLM recommend to you ? GDG meetup 16 Aug by Fariman Guliev
Wondershare Recoverit Full Crack New Version (Latest 2025)
UTEP毕业证学历认证,宾夕法尼亚克拉里恩大学毕业证未毕业
Microsoft Office 365 Crack Download Free
Guide to Food Delivery App Development.pdf
How Tridens DevSecOps Ensures Compliance, Security, and Agility
Lecture 5 Software Requirement Engineering
Cybersecurity: Protecting the Digital World
Tech Workshop Escape Room Tech Workshop
DuckDuckGo Private Browser Premium APK for Android Crack Latest 2025
Workplace Software and Skills - OpenStax
The Dynamic Duo Transforming Financial Accounting Systems Through Modern Expe...
AI/ML Infra Meetup | LLM Agents and Implementation Challenges
Matchmaking for JVMs: How to Pick the Perfect GC Partner

Not your fathers language c++

  • 1. Not your fathers Language C++ Microsoft Senior Technical Evangelist 김명신
  • 3. 관화 25% 스페인어 13% 영어 펀자브어 힌디어 10% 9% 독일어 3% 아랍어 7% 벵골어 5% 러시아어 5% 프랑스어 5% 포르투칼어 6% 일본어 4% 한국어 2% 우어 2% 자와어 2% 2%
  • 5. 0 20 40 60 80 100 120 140 160 92 88 84 80 75 69 66 63 60 57 54 51 48 45 42 39 36 33 30 27 24 21 18 COUNT AGE
  • 6. 0% 10% 20% 30% 40% 50% 60% 0-4 years 5-9 years 10+ years
  • 7. Gaming, 20% Engr/Science, 15% Frameworks, Other, 13% Business, 12% Content, 7% Imaging, 7% Productivity, 8% Embedded, 8% 10%
  • 11. Efficiency BOT-1999 2009-EOT Flexibility Abstraction (OO, Generics) Productivity (Automatic Services, Tools) C = efficient high-level portable code struct, functions C++ = C+ efficient abstraction class, templates Java, C# = productivity Mandatory metadata & GC, JIT compilation
  • 28. ISCA(The ACM/IEEE International Symposium on Computer Architecture)
  • 33. Windows 8 ~ Productivity Performance Conformance
  • 34. Target OS Native Code Managed Code Windows 8 O O Windows 7 O O Windows Vista O O Windows XP 이전 O O Windows Server 2012 O O Windows Server 2008 R2 O O Windows Server 2008 O O Windows Server 2003 이전 O O 플랫폼 호환성 및 시스템 요구 사항
  • 35. Auto Vectorization Use vector registers and instruction (Streaming SIMD Extension 4.2) Auto Parallelization Conservative in selecting the loop #pragma loop(hint_parallel(n))
  • 36. Take Advantage of data-parallel hardware AMP Specification
  • 37. C++11 Core Language Features VC10 VC11 Rvalue references v2.0 v2.1* Lambdas v1.0 v1.1 decltype v1.0 v1.1** auto v1.0 v1.0 static_Assert Yes Yes Trailing return types Yes Yes nullptr Yes Yes Strongly typed enums Partial Yes Forward declared enums No Yes Standard-layout and trivial types No Yes Atomics No Yes Strong compare and exchange No Yes Bidirectional fences No Yes Data-dependency ordering No Yes Range Based for loops No Yes Independent “Scary” iterators No Yes Lambdas, R-value references static_assert auto, decltype, nullptr Range-based for loops Stateless lambdas Scoped enumerations New STL headers: <atomic>, <chrono>, <condition_variable>, <filesystem>, <future>, <mutex>, <ratio>, <thread>
  • 38. Backwards compatibility Browse from Solution Explorer Pin & Preview Multi-mon Search across the IDE. Search in tool windows.
  • 39. Improves code understanding Uses the compiler to show accurate matches Improves code understanding. Aggressive Member list Member list filtering C++/CLI support. Code Snippets
  • 40. Help manage projects w/ Sprint Planning, U… Improved developer productivity w/ Code review, E… Improved Code coverage Better static analysis Architecture Tools Unit Testing

Editor's Notes

  • #39: Projects & Solutions Backwards compatibility Work with Visual Studio 2010 SP1 projects and files in both Visual Studio 2012 RC and Visual Studio 2010 SP1. Browse code in Solution Explorer. Browse the types and members in your projects, search for symbols, view a method’s Call Hierarchy, find symbol references, and perform other tasks without switching between multiple tool windows. Window Management Pin & Preview Reduce file clutter in the editor by viewing files without opening them. Preview files appear in a blue tab on the right side of the document tab well. The file opens if you modify it or choose the Open button. Access frequently used files more easily. Pin files that you use often to the left side of the tab well so that you can access them easily regardless of how many files are open in the IDE. Multi-Mon Arrange windows on multiple monitors more effectively. Dock multiple floating tool or document windows together as a “raft” on other monitors. You can also create multiple instances of Solution Explorer and move them to another monitor. Search everywhere Search across the IDE. Specify a word or a phrase, and then choose an entry from the list to open the dialog box or window that’s associated with the item or command. Search in tool windows. Filter the view by entering a keyword in the search box at the top of certain tool windows, such as the Toolbox, Solution Explorer, Error List, and Team Explorer.
  • #40: Moving on from Windows Store applications, let’s look at some of the productivity enhancements in Visual Studio 2012. Specify more semantic colorization. More C++ tokens now have colorization by default, and you can specify more colorizations. Use improved reference highlighting. You can highlight all instances of a symbol just by pointing to one instance. Choose member functions as you type. The List Members list appears automatically as you enter text in the code editor. Results are filtered so that only relevant members appear. Take advantage of C++/CLI IntelliSense. C++/CLI now supports IntelliSense features such as Quick Info, Parameter Help, List Members, and Auto Completion. Speed up your coding by using code snippets. You can choose a code snippet from the List Members list and then fill in the required logic. Snippets are available for switch, if-else, for, and other basic code constructs. You can also create custom snippets.
  • #41: Visual Studio 2012 brings a lot of new features to the ALM suite across the board to help developers be more productive. To name some: User Story/Product Backlog mgmt, Lightweight Requirements, Sprint planning, Taskboards planning, Context Switching etc. At the same time there are significant additions that will wow the C++ developers. Static Code Analysis Static analysis for C++ has been updated to provide richer error context information, more analysis rules, and better analysis results. For certain C++ warnings, the message lists source lines to show you the execution path that led to the warning. Here are some other code analysis enhancements: New concurrency warnings help you make sure that you are using the correct locking disciplines in multithreaded C/C++ programs. The analyzer detects potential race conditions, lock order inversions, caller/callee locking contract violations, mismatched synchronization operations, and other concurrency bugs. You can specify the C++ rules that you want to apply to code analysis runs by using rule sets. Updated Unit Test Framework Use the new C++ unit test framework in Visual Studio to write C++ unit tests. Add a new unit test project to your existing C++ solution by locating the C++ Unit Test Project template under the Visual C++ category in the New Project dialog box. Start writing your unit tests in the generated TEST_METHOD code stub in the Unittest1.cpp file. When the test code is written, build the solution. When you want to run the tests, open a Unit Test Explorer window by choosing View, Other Windows, Unit Test Explorer, and then, on the shortcut menu for the test case you want, choose Run selected test. After the test run finishes, you can view test results and additional stack trace information in the same window. Architecture Dependency Graphs To understand your code better, you can now generate dependency graphs for the binary, class, namespace, and include files in a solution. Architecture Explorer By using the Architecture Explorer, you can explore the assets in your C++ solution, projects, or files. On the menu bar, choose Architecture, Windows, Architecture Explorer. Code Coverage Code coverage has been updated to dynamically instrument binaries at runtime. This lowers the configuration overhead and provides better performance. You can also collect code-coverage data from unit tests for C++ app.