Post on 06-Oct-2020
David Intersimone “David I”
Vice President of Developer Relations
and Chief Evangelist
Email: davidi@embarcadero.com
Twitter: davidi99
Blog: blogs.embarcadero.com/davidi/
Agenda
Multi-Device App Development
C++Builder XE3 Overview
C++Builder in the Multi-Device Enterprise
Summary
Q&A
- 52 Billion lines of code per year
- $28 USD avg per line of GA code
- $1.5 Trillion WW per year spent
developing source code
*Evans Data4
16 Million Developers World Wide*
Embarcadero Developer Value
- 3m Developer Community
- 9.7 Billion LOC per year
- Saving 48 billion LOC/yr
- effective $5.60 per line of code(vs industry std $28/LOC)
- $220 Billion in annual
developer savings
5
Up to 80% less code per project
6
Embarcadero’s Method to Success on Windows:
C++ & Delphi
VCL
- Component Base Frameworks
- Visual Development
- Simplified abstraction of WinAPIsEg. collapse 100 lines of common Win API / MFC functionality into a single method or property
- RAD infused standard languages
- Make hard things easy
80% code savings via
2013: The Client Revolution
Windows WebMobileMac
Today’s Unprecedented Multi-Device Landscape
1 Billion 65 Million 1 Billion 2 Billion
The Client Revolution
An Unprecedented Multi-Device Landscape
2013+
Client Device Diversity Will Continue to Expand
Vendor Tool Approach for Targeting Multiple Devices
$ $ $ $
C# or C++
.NET or MFC
C++ or Obj-C
OSX SDK
C++ or Obj-C
iOS SDK
Java
Android SDK
?
11
Traditional “Like to Like” Cross-platform
QT, WXWidgets
$ $
C++
Desktop
Framework
C++
Mobile
Framework
Future
?
12
HTML5 Cross-platform
$
Adobe, Sencha, Kendo, HTML5Builder
HTML5/JavaScri
pt
PhoneGAP
SDK
Future
?
so-called “Platform Native” virtual code
$ $ $
Common Programming Language
Platform
SDK
Platform
SDK
Platform
SDK
Appcellerator, Xamarin Mono
Future
14
Embarcadero: Multi-Device App Development
$
Future
C++ or Delphi
FM2 Framework
PC – Phone – Tablet - More
Platforms: Windows, Mac, iOS, Android
Form factors: PC, Phone, Tablet, Mini-Tablet, iPod, Phablet
Audience: ISV to Enterprise – targeting multiple devices
Connectivity: Enterprise Database Connectivity & Flexible
Middleware
2013+
SmartTVs, Car Infotainment, Home Automation, Smart
Watches, and more
15
Multi-Device
Real Code vs Virtual Code
16
Real
Code
ARM CPU ARM CPU
Software Virtual CPU aka
Virtual Machine (VM)
Virtual
Code
“Anyone remember VB?”
Tunability: App
is limited by the preset capabilities of
the VM. Performance:
App runs within a software machine process
running on the device.
Predictability:
Memory is automatically garbage
collected -when full and
when the VM decides it’s time. Not the
dev.
User Experience: Virtual Apps are
oblivious to device specs. Device vendors (Apple, Samsung, etc) spend countless engineering &
dollars tuning & squeezing great UX into a device based on limited
CPU, battery, and memory.
vs
C, C++, Obj-C, Delphi
HTML5/JavaScript,
Java, .NET, Mono
Real CodeNative Device Applications
Intel/ARM Machine CodeMaximum Performance
Highly tunable
Smallest Possible Footprint
Low Latency
Developer sched mem mgmt
17
Virtual CodeVirtual Device Application
Virtual Machine CodeMedium to Slow Performance
Limited tunability
Large Runtime Footprint
Med to High Latency
Runtime scheduled mem mgmt
Languages:C++, Obj-C, C, Delphi
Languages:HTML5/JavaScript, C#, Java,
Mono C#
Best Suited for:User/Client Apps
Embedded Applications
Real-time Applications
Best Suited for:Web Server Applications
Browser based Applications
18
Embarcadero: Multi-Device App Development
HTML5 Cross
Platform
“Platform
Native”
Platform Vendor
ToolsRapid Multi-Device
Examples
Adobe, Sencha,
Kendo, HTML5Builder
Appcellerator,
Xamarin Mono
XCode, Visual
Studio, Eclipse
Embarcadero
RADStudio
Platforms iOS/Android iOS/Android
Win or Mac/iOS
or Android(Sep IDE, lang, & SDK
for ea platform)
Mac/Win/iOS &
Android* (2013)
Native “Real Code” No No Yes Yes
Native Platform API Access No (PhoneGap) Yes Yes Yes
Single Source Multi-Vendor
TargetingYes No No Yes
Single IDE Yes/Plugin Yes/Plugin No Yes
Single Project Multiple Multiple Multiple Yes
App Performance Low Low High High
App Number Crunching
PowerLow Low High High
App Capacity (mem/data) Low Low/Med High High
App UX (User Experience) Low/Med Med High High
Enterprise Connectivity Low Low High High
19
C++ is The Choice for Clients Devices
#2 and #4 languages for SourceForge
open source projects
Top commercial software is written in C++
- Microsoft Word, Adobe Photoshop,
Google Chrome, Firefox, Mac OS X, iOS,
Oracle database, Microsoft SQL Server,
MySQL, Games
Top web companies use C++ – Google,
Facebook, PayPal, Amazon
20
C++Builder XE3
New Native Multi-Device Targeting Architecture
Windows & Mac 2012
iOS & Android in development - RAD Studio Mobile Roadmap - http://edn.embarcadero.com/article/42544
Highest standards compliance
C++98, C++TR1, and C++11 language standards
ANSI C, ISO C, C99, and C11 language standards
Dinkumware STL and Boost 1.5
CLANG compatible, LLVM compiler infrastructure
Agile C++ language extensions
21
Native Multi-device Development Solution
Windows 8 Metropolis UIs with Touch
Mac OS X Lion, Mountain Lion & Retina
Mobile “Ready”
Pixel Perfect OS Native Control Styling
Non-Client Area Styling
Anchors and Layout Managers
Actions and ActionLists
Audio/Video
High Performance and Quality
3rd party styles support
Delphi and C++Builder
FM2 – Multi-Device
23
Why C++Builder?
Native Multi-device Targeting for development
time/cost of Single platform
Standards based C/C++ language – C++11
Agile, visual development
Windows and Mac Targeting 2012
iOS and Android Announced for 2013
High Performance Seamless DB and
Web/Cloud Services Connectivity
24
clang
http://clang.llvm.org/○ Modular library based architecture
○ A real-world, production quality compiler
○ Conformance with C/C++/ObjC and their variants○ http://channel9.msdn.com/Events/GoingNative/GoingNative-
2012/Clang-Defending-C-from-Murphy-s-Million-Monkeys
○ http://devimages.apple.com/llvm/videos/ExtendingClang.m4v
○ http://llvm.org/devmtg/2011-11/Gregor_ExtendingClang.pdf
LLVM○ Great optimizations (http://llvm.org/docs/Passes.html)
○ Online Demo ( http://llvm.org/demo/ )
26
C++Builder is Enterprise Ready
Windows 32/64 and Mac (iOS & Android in 2013)
FireDAC, dbExpress, ADO and SQL databases
Devices, Sensors and Platform Services
Web Services: SOAP and REST
RAD Cloud Services
Multi-Tier - DataSnap
27
What is FireDAC?
• A set of Universal Data Access Components• High-performance, easy-to-use• Enterprise connectivity• Universal Data Access
• Also with many database specific features
FireDAC Overview
Native FireDAC Drivers
• MySQL• Microsoft SQL
Server• Oracle Database• InterBase• PostgreSQL• DataSnap• SQLite
• Sybase SQL Anywhere
• Microsoft Access• IBM DB2 Server• Firebird• Advantage Database• ODBC gateway • dbExpress gateway
FireDAC Core Components
• TADConnection: connection to a database• TADTransaction: transaction in a connection• TADMemTable: in-memory dataset• TADQuery: executes a SQL commands and
returns result sets• TADStoredProc: executes a stored procedure• TADTable: open table data for navigation• TADScript: executing SQL scripts
Additional Data Access Components
• dbExpress• InterBase Express• ADO• 3rd party components are also available
Devices, Sensors and Platform Services
Device support – framework agnostic TCaptureDeviceManager
MediaType = video, audio
Sensor support – framework agnostic TSensorManager
TSensorCategory
Platform Services TPlatformServices
SupportsPlatformService method
Platform service interfaces
TOSVersion○ OS info – version, build #, update #, service pack #
○ Processor architecture
33
Web Services: SOAP and REST
SOAP servers and clients
WSDL import wizard
HTTPRIO component
REST servers and clients
Project Indy TidHTTP component
34
RAD Cloud Services
35
Multi-Tier - DataSnap
DataSnap servers - Windows DataSnap Server application – VCL, FMX, Console, Service
DataSnap WebBroker application
DataSnap REST application
DataSnap Clients – Windows and Mac C++/Delphi clients
HTML/JavaScript clients
Mobile clients via DataSnap connectors○ iOS
○ Windows Phone
○ Android
○ Blackberry
JSON (JavaScript Object Notation)
Protocols – TCP/IP, HTTP, HTTPS
Authentication and Authorization
36
InterBase XE3
Highly scalable, powerful, embeddable database
Zero administration. Tiny footprint. Encryption for
database, table, column
Editions Server, Desktop, ToGo – DLL/Dylib
Developer – included with the IDE
ToGo test deployment licenses in RAD Studio Directly deploy apps and databases from the RAD
IDE for Server and ToGo Edition to Windows & Mac VAR and OEM pricing available from sales
38
C++ in the Multi-Device Enterprise
Supporting the technologies and architectures
enterprises need
Industry standard C++ language
Support for a wide range of SQL databases
FireMonkey 2
Web Services
Cloud Computing
Multi-Platform
39
Q1 RAD Tools : Promotions
Offer:
Buy C++Builder XE3 Professional
Get HTML5 Builder FREE!
Offer:
Upgrading to Enterprise Edition
Get ER/Studio data modeling FREE!
Architect edition at Enterprise edition price!
Ends March 31sthttp://www.embarcadero.com/products/cbuilder/offer
Introductory special offer on
FireDAC data access components!
Get FireDAC FREE when you buy
Enterprise edition or higher
Professional edition users save $100 on
the FireDAC C/S Add-On Pack for XE3
Professional (limited time introductory)
XE3 Enterprise edition or higher customers
can download FireDAC now.
41
http://www.embarcadero.com/radoffer
42
Additional Information
C++Builder XE3 product page -http://www.embarcadero.com/products/cbuilder
A Conversation with Bjarne Stroustrup -http://forms.embarcadero.com/forms/AMUSCA1212CodeRage7BjarneStroustrupReplay
RAD Studio Mobile Roadmap -http://edn.embarcadero.com/article/42544
C++Builder 31 videos – creating software applications (January 2013) -http://www.embarcadero.com/products/cbuilder/how-to-create-software-applications
64-bit Windows development with C++Builder XE3 -http://www.embarcadero.com/products/cbuilder/64-bit
43
44
David Intersimone “David I”
Vice President of Developer Relations
and Chief Evangelist
Email: davidi@embarcadero.com
Twitter: davidi99
Blog: blogs.embarcadero.com/davidi/