Silicon Valley Code Camp - Do you C what I C

454 views

Published on

Learn more about C++Builder at http://www.embarcadero.com/products/cbuilder. John Thomas of Embarcadero Technologies presents C++ and its renewed usage in the high-growth mobile application development market with emphasis on the iOS and Android platforms. The presentation covers the brief history of C/C++, its renewed importance in modern application development with current frameworks, new C++11 language features, and vendor language extensions.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
454
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
4
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Silicon Valley Code Camp - Do you C what I C

  1. 1. Do you C what I C? { The resurgence of C/C++ for modern application development Silicon Valley CodeCamp October 2012 John Thomas, Embarcadero Technologies
  2. 2. Dogs and Cats livingtogether…Mass Hysteria!!-Dr. Venkman (Ghostbuster)
  3. 3. Dogs (like C++) require some effort,but it pays off in more utility, later.
  4. 4. A Brief History of C++ {
  5. 5. Bell Labs
  6. 6.  C with Objects (1979)  Modeled OO after Simula and Ada  But syntax and RTL based on C  Classes  Inheritance  Inlining  Default arguments  Type checking  CFront compilerBjarne Stroustrup
  7. 7.  Name changed to C++ in 1983  Virtual functions  Operator overloading  References  Constants  // Single line comments  AT&T commercial compilerAT&T C++
  8. 8. Windows C++ Frameworks
  9. 9.  1998  2003  2007 TR1  2011Standardization (ANSI/ISO)
  10. 10.  Language  Library  Multiple Inheritance  Strings  Templates  Streams  Abstract Classes  Algorithms  Exceptions  Containers  Namespace  Iterators  Typecasts  bool C++ 98
  11. 11.  C++03 was a bug fix  Regular expressions release for  Smart pointers implementers  Hash tables  No change to the specification  Random number generators  TR1 was library focused  Reference wrapper  Much of the standard  Function objects library began its life in  Tuple type Boost  Fixed size arrayC++03 & TR1
  12. 12.  Rvalue references and move  Variadic templates constructors  New string literals  constexpr - Generalized constant  User-defined literals expressions  Multithreading memory model  Core language usability enhancements  Thread-local storage  Initializer lists  Explicitly defaulted and deleted special member functions  Uniform initialization  Type long long int  Type inference  Static assertions  Range-based for-loop  Allow sizeof to work on members of  Lambda functions and expressions classes without an explicit object  Alternative function syntax  Control and query object alignment  Object construction improvement  Allow garbage collected  Explicit overrides and final implementations  Null pointer constant  Threading facilities  Strongly typed enumerations  Tuple types  Right angle bracket  Hash tables  Explicit conversion operators  Regular expressions  Alias templates  General-purpose smart pointers  Unrestricted unions  Extensible random number facility  Wrapper reference  Polymorphic wrappers for functionC++11  objects Type traits for metaprogramming
  13. 13. A Vendor Perspective { Application frameworks for design time development
  14. 14.  Delphi/C++ (VCL)  C++ (OWL)  Windows  Windows Encapsulation Encapsulation  Delegation  Inheritance  Method Pointers  Multiple-Inheritance (closures)  v-tables  Properties  Fields  Text file form  Pure-code generation  Streaming-system  RTTIApplication Frameworks
  15. 15. Design Time
  16. 16.  C++Builder  WinRT C++  __classid  ref/value/interface  __delphirtti  property  __closure  Eevent  __property  delegate  __published  generic  ref new  ^  %RTTI
  17. 17. A Market Perspective { Rise and fall and rise again of C++
  18. 18. C++ Usage Statistics
  19. 19. Changes in Enterprise3,500,0003,000,0002,500,0002,000,000 C/C++1,500,000 Java C#.Net1,000,000 500,000 0 1995 2000 2005 2010
  20. 20.  1990s  2005  Large growth in  Device development desktop applications kick-started again by  Client-server IP Apple success with architecture nascent iPod, iPhone, and iPad  Most server side apps  2010 were basic web  Tremendous device  2000 client growth through smartphones driven by  Server side Android development increase  Server side still  Java growth with EJB important but leveragedClient / Server
  21. 21. It’s all about theClient { Again…
  22. 22. Devices, Devices, Devices
  23. 23. Windows 8 WinRT
  24. 24. BlackBerry 10
  25. 25. Android NDK
  26. 26.  Objective-C  C-based OO language modeled after SmallTalk  Now shares a common front-end and architecture with a major C++ compiler CLANGiOS
  27. 27. iOS Android BlackBerry C++ Source CodeA common use case
  28. 28.  C++ is coming up on its 30th anniversary  It’s more important than ever  Device growth and vendor support favor C++Summary
  29. 29. Questions { john.thomas@embarcadero.com

×