David Intersimone “David I” Vice President of Developer Relations...

Post on 06-Oct-2020

0 views 0 download

Transcript of David Intersimone “David I” Vice President of Developer Relations...

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/