Top Banner
InterConnect 2017 Programming languages in the enterprise: Which language should I use? Shereen Ghobrial Offering Management, IBM Compilers 1 3/17/2017
44

InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

Apr 14, 2017

Download

Software

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

InterConnect2017

Programming languages inthe enterprise: Whichlanguage should I use?

Shereen Ghobrial

Offering Management,IBM Compilers

1 3/17/2017

Page 2: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

2 3/17/2017

Please note

IBM’s statements regarding its plans, directions, and intentare subject to change or withdrawal without notice at IBM’ssole discretion.

Information regarding potential future products is intended tooutline our general product direction and it should not be reliedon in making a purchasing decision.

The information mentioned regarding potential future productsis not a commitment, promise, or legal obligation to deliverany material, code or functionality. Information about potentialfuture products may not be incorporated into any contract.

The development, release, and timing of any future featuresor functionality described for our products remains at our solediscretion.

Performance is based on measurements and projectionsusing standard IBM benchmarks in a controlled environment.The actual throughput or performance that any user willexperience will vary depending upon many factors, includingconsiderations such as the amount of multiprogramming inthe user’s job stream, the I/O configuration, the storageconfiguration, and the workload processed. Therefore, noassurance can be given that an individual user will achieveresults similar to those stated here.

Page 3: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

• The Application Developers

• Modern Languages for EnterpriseServers

• Java

• Node.js

• Swift

• Demo – CICS & Swift

3 3/17/2017

Agenda

Page 4: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

Assembler

COBOL

PL/I

C/C++

4 3/17/2017

When were the followinglanguages introduced to zSystems?

Page 5: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

Assembler (early 1950s)

COBOL (1959)

PL/I (1964)

C/C++ (1972/1983)

5 3/17/2017

When were the followinglanguages introduced to zSystems?

Page 6: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

The Application Developers

6 3/17/2017

Page 7: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

42%

50%

19%

45%

Mobile Apps Desktop Apps Internet of Things Cloud & BackendServices

7 3/17/2017

What platforms do they target?

Source: Developer Economics – State of the Developer Nation Q1 2016 | Licensed under CC BY ND | Copyrights VisionMobile

Percent of professional developers targeting each sector(the same developer may target multiple sectors)

(incl. mobile web) (incl. web)

Page 8: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

• Developers are typically multi-lingual, using the language thatmakes sense for the projects theyare working on

• Java maintains the top spot despiterumors of its decline

• JavaScript the most popularscripting language

• Swift is on the rise (the newestlanguage on the list)

8 3/17/2017

Which languages do they use?Top Programming Languages

All populations in millions

Language Population

Java 14.0

C++ 13.1

JavaScript 11.6

C 11.3

C# 11.2

PHP 9.4

Swift or Objective C 8.8

Python 7.9

Perl 7.4

Ruby 6.8

Other 13.2

Source: Global Developer Population and Demographics Survey: Volume I, © 2016 Evans Data Corp.

Page 9: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

The Motivation for Modernlanguages on z Systems

9 3/17/2017

Page 10: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

10 3/17/2017

Modern Application Design

Public Cloud Services

On-prem Services

User-facing Client Apps

Things / Sensors

End Users

Page 11: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

11 3/17/2017

Modern Application Design

Public Cloud Services

On-prem Services

User-facing Client Apps

Things / Sensors

End Users

Developer Experience

Page 12: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

12 3/17/2017

Modern Application Design

Public Cloud Services

On-prem Services

User-facing Client Apps

Things / Sensors

End Users

Developer Experience

JavaNode.js

Swift

JavaNode.js

Swift

JavaNode.js

Swift

Page 13: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

13 3/17/2017

Modern Application Design

Public Cloud Services

On-prem Services

User-facing Client Apps

Things / Sensors

End Users

Developer Experience

JavaNode.js

Swift

JavaNode.js

Swift

JavaNode.js

Swift

Page 14: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

14 3/17/2017

Why do we need modern languages on IBM z Systems / LinuxONE?

Skills: Millions of Available Developers

Public Cloud Services

On-prem Services

User-facing Client Apps

Things / Sensors

End Users

Developer Experience

1

JavaNode.js

Swift

JavaNode.js

Swift

JavaNode.js

Swift

Page 15: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

15 3/17/2017

Why do we need modern languages on IBM z Systems / LinuxONE?

Modernization: Good fit for API Economy

CICS

REST (zOS Connect)

COBOLApp

DB2

JavaNode.js

Swift

2

JavaNode.js

Swift

JavaNode.js

Swift

JavaNode.js

Swift

JavaNode.js

Swift

IMS

JavaNode.js

Swift

JavaNode.js

Swift

mongoDB

mariaDB

Future Intention

z System

Page 16: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

16 3/17/2017

Why do we need modern languages on IBM z Systems / LinuxONE?

Performance: Put Your Back-End Closer to Your Data

FrontEnd

3

FrontEnd

BackEnd

BackEnd

z System

mongoDB/mariaDB

DB2/IMS

BackEnd

SLOW

FASTFASTFAST

Page 17: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

Java

17 3/17/2017

Page 18: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

18

Why Java?

There are

14 millionJava developers

80%of the world’s corporate data

resides on or originates on the

mainframe

Two

pervasivetechnologies…

…combined for

powerfulperformance…

Page 19: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

19 19

Classified Java projectsas >= successful

now have Java applicationsin production

>80% 85%

95 client responses

68% Java Project on z

85% within 3 years

145 surveys returned

In 1 week…

How Successful was your project?Enterprise ArchitectsSystem programmers

Application Developers

had the most influenceOn Java on z projects

Survey Results:

Clients are successfullyusing Java on mainframe

Page 20: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

Node.js

20 3/17/2017

Page 21: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

21 3/17/2017

Node.js

What is Node.js?

• Server-side JavaScript platform

• Built on Google's V8 JavaScript engine

• Goal: Efficiently build:

• fast,

• scalable,

• 'real-time' network applications

• Event-oriented, non-blocking,asynchronous I/O framework

Page 22: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

Why Node.js?

22 3/17/2017

Productive

Easy touse

Scalable

Page 23: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

23 3/17/2017

Why Node.js? Productivity

• Large repository of modules:

• NPM: Node Package Manager

• Repository of communitycontributed modules

• Developers love it!

• 400k modules and growing!

• 3x growth rate vs otherruntimes

• High productivity for applicationdevelopers (due to available modules)

Node.js

(Feb 16, 2017 – modulecounts.com)

Page 24: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

• Event-driven, single-threadedmodel

• Eliminates concurrency andthread-safety worries

• Integration with JSON APIs

24 3/17/2017

Why Node.js? Simple to use

Page 25: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

• Node.js leverages theunderlying async i/o support inthe OS

• Thousands of concurrentconnections with minimaloverhead

25 3/17/2017

Why Node.js? Scalable

Page 26: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

26 3/17/2017

IBM SDK for Node.js

Combine modern web JavaScript + Node.js applications with thebenefits of z Systems hardware, monitoring, and security

Compatible to Node.js 0.12, 4.x, 6.x

High performance JavaScript for Linux on z Systems• Highly scalable, event-driven platform with non-blocking I/O

• Thousands of concurrent connections with minimal overhead

• Up to 2x better performance over Intel on AcmeAir*

z Systems connectivity• Co-locate Node.js apps for reduced latency accessing z/OS data/services

• Up to 2.5x better throughput, 60% faster response time to DB2 on z/OS*

Security and dependability• Leverages the trusted environments of z Systems to maximize security and

uptime of critical Node.js applications.

Unified diagnostics tooling with IBM SDKs for Java®

• Monitor your application with IBM Health Center

http://www.ibm.com/developerworks/web/nodesdk

Page 27: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

27 3/17/2017

Unified Tooling

• Unified diagnostics tooling with IBM SDKs for Java®

• Monitor with Health Center

• Quick to deploy, small impact live monitoring tool

• Tracks Memory+ CPU usage, Garbage collection, application hot spots, and more!

• http://www.ibm.com/developerworks/java/jdk/tools/healthcenter

• Debug with Interactive Diagnostics Data Explorer (IDDE)

• FFDC with nodereport: https://github.com/nodejs/nodereport

• Post mortem dump analysis

• http://www.ibm.com/developerworks/java/jdk/tools/idde

• Node Application Metrics (appmetrics)

• npm module instruments the Node.js runtime for performance monitoring

• https://www.npmjs.com/package/appmetrics

Page 28: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

28 3/17/2017

Benefits of Co-locating Node.js with Data

DB2

Twitter

Linux

zOS

Accessing DB2data on z/OS

Node.js co-located on

Linux on z vsoff-platform

60% FasterResponse

Time

2.5x BetterThroughput

z/OS Connect

IMS

WebSphereApp Server

CICS

Page 29: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

29 3/17/2017

IBM SDK for Node.js and Community Drivers (LinuxONE)

• IBM SDK for Node.js

• Matches and extends community version - shares 99% of code!

• Introduces additional RAS capabilities

• core debugging with IBM Diagnostic and Data Explorer (IDDE)

• Security Fixes, License + Code scans

IBM SDK for Node.js Community

V1.1.x 0.10.x

V1.2.x 0.12.x

V4.x V4.x LTS

V6.x V6.x LTS *community drivers available*

Page 30: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

30 3/17/2017

IBM SDK for Node.js - z/OS

• Node.js on z/OS Tech Preview• https://developer.ibm.com/node/sdk/ztp

• Open Source Collaboration Model

• Contributions and feedback welcomed!• GitHub pull requests, IBM SDK for Node.js community• V8: github.com/ibmruntimes/v8z (Branch: 3.28-zos, 5.1-zos)• Node: github.com/ibmruntimes/node (Branch: v0.12-zos)• libuv: github.com/libuv/libuv (Version: v1.11 or newer)*

• Libuv upstreamed to official repository

Page 31: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

Swift

31 3/17/2017

Page 32: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

32 3/17/2017

Swift Ecosystem

WWDC 2014Apple releases anew programminglanguage called

“Swift”

WWDC 2015Apple announcesto open source

Swift

“Swift is growingfaster than anything

else we track”

June 2014

June 2015

July 2015

Nov. 2015

Apple releases Swiftas Open Source.

Dec. 3, 2015

Jan. 2016Programming Language RankingsSwift “meteoric rise” continues. “Swiftmoves up one spot from #18 to #17Y/Y…and is within hailing distance ofout Tier 1 languages”.

Introducing the IBMSwift Sandbox

Feb 2016

IBMInterConnect

2016IBM to bring Swift tothe cloud to radically

simplifying end-to-enddevelopment of apps

Swift #2 “Most Loved”

Nov. 2016

Mar. 2016

Tokyo

Sep. 2016

NYC

IBM Bluemix Runtimefor Swift

Industry backing

Developers acceptance

Tools & packages

Conferences & meetups

Page 33: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

Why Swift?

33 3/17/2017

Performant

Modern

Safe

Page 34: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

34 3/17/2017

Why Swift? Performant

4 4.3

15.8

134.2

0

20

40

60

80

100

120

140

160

Swift Java JavaScript Ruby

Du

ratio

n(s

)(lo

we

ris

be

tte

r)

Performance: Fast

15

32.2

25.3

54.6

0

10

20

30

40

50

60

Swift Java JavaScript Ruby

Me

mo

ryU

sa

ge

(MB

)(lo

we

ris

be

tte

r)

Performance: Low Memory

Source: benchmarksgame.alioth.debian.org/u64q/performance.php?test=spectralnorm

Page 35: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

Easy to learn

Simple to use

Strong foundation on LLVM

35 3/17/2017

Why Swift? Modern

Page 36: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

• Type safe

• Helps developers refactor,extend, iterate on solutions.

• Error detection at compile time• Automatic initialization

• Variables are automaticallyinitialized

• Memory is automatically allocatedand managed.

36 3/17/2017

Why Swift? Safe

Page 37: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

37 3/17/2017

We have already started the journey

• IBM has been working with the open source community to improveSwift for the server platform, with many changes already integrated intoSwift 3.0

• IBM has already enabled LinuxONE on IBM Swift Sandbox

• IBM has pushed all code for LinuxONE to github

• Swift 3.0 GA’ed in September 2016 with full LinuxONE support

• IBM is working to bring Swift to z/OS to modernize the whole zecosystem (contact us to join our beta program).

Page 38: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

• Core tools to develop in Swift:

• Compiler (Swift 3)

• Swift Runtime

• Debugger (lldb)

• Web framework (Kitura)

• World class service & support

38 3/17/2017

Introducing a new offering:

IBM Toolkit for Swift – Linux on z Systems

Available: March 17th, 2017Available: March 17th, 2017

Page 39: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

• We are looking for innovators andearly adopters

• For both Swift & Node.js

• Validate user scenarios and getearly access to the latest drivers.

• If interested, contact:

• Shereen Ghobrial:[email protected]

• Roland Koo:

[email protected]

39 3/17/2017

You can impact the future

Page 40: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

Demo

CICS & Swift

40 3/17/2017

Page 41: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

41 3/17/2017

Notices and disclaimers

Copyright © 2017 by International Business Machines Corporation (IBM).No part of this document may be reproduced or transmitted in any formwithout written permission from IBM.

U.S. Government Users Restricted Rights — use, duplication ordisclosure restricted by GSA ADP Schedule Contract with IBM.

Information in these presentations (including information relating toproducts that have not yet been announced by IBM) has been reviewedfor accuracy as of the date of initial publication and could includeunintentional technical or typographical errors. IBM shall have noresponsibility to update this information. This document is distributed“as is” without any warranty, either express or implied. In no eventshall IBM be liable for any damage arising from the use of thisinformation, including but not limited to, loss of data, businessinterruption, loss of profit or loss of opportunity. IBM products andservices are warranted according to the terms and conditions of theagreements under which they are provided.

IBM products are manufactured from new parts or new and used parts.In some cases, a product may not be new and may have been previouslyinstalled. Regardless, our warranty terms apply.”

Any statements regarding IBM's future direction, intent or productplans are subject to change or withdrawal without notice.

Performance data contained herein was generally obtained in acontrolled, isolated environments. Customer examples are presentedas illustrations of how those customers have used IBM products and

the results they may have achieved. Actual performance, cost, savings orother results in other operating environments may vary.

References in this document to IBM products, programs, or servicesdoes not imply that IBM intends to make such products, programs orservices available in all countries in which IBM operates or doesbusiness.

Workshops, sessions and associated materials may have been preparedby independent session speakers, and do not necessarily reflect theviews of IBM. All materials and discussions are provided for informationalpurposes only, and are neither intended to, nor shall constitute legal orother guidance or advice to any individual participant or their specificsituation.

It is the customer’s responsibility to insure its own compliance with legalrequirements and to obtain advice of competent legal counsel as tothe identification and interpretation of any relevant laws and regulatoryrequirements that may affect the customer’s business and any actionsthe customer may need to take to comply with such laws. IBM does notprovide legal advice or represent or warrant that its services or productswill ensure that the customer is in compliance with any law.

Page 42: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

42 3/17/2017

Notices and disclaimerscontinued

Information concerning non-IBM products was obtained from thesuppliers of those products, their published announcements or otherpublicly available sources. IBM has not tested those products inconnection with this publication and cannot confirm the accuracy ofperformance, compatibility or any other claims related to non-IBMproducts. Questions on the capabilities of non-IBM products should beaddressed to the suppliers of those products. IBM does not warrant thequality of any third-party products, or the ability of any such third-partyproducts to interoperate with IBM’s products. IBM expressly disclaimsall warranties, expressed or implied, including but not limited to, theimplied warranties of merchantability and fitness for a particular,purpose.

The provision of the information contained herein is not intended to, anddoes not, grant any right or license under any IBM patents, copyrights,trademarks or other intellectual property right.

IBM, the IBM logo, ibm.com, Aspera®, Bluemix, Blueworks Live, CICS,Clearcase, Cognos®, DOORS®, Emptoris®, Enterprise DocumentManagement System™, FASP®, FileNet®, Global Business Services®,Global Technology Services®, IBM ExperienceOne™, IBM SmartCloud®,IBM Social Business®, Information on Demand, ILOG, Maximo®,MQIntegrator®, MQSeries®, Netcool®, OMEGAMON, OpenPower,PureAnalytics™, PureApplication®, pureCluster™, PureCoverage®,PureData®, PureExperience®, PureFlex®, pureQuery®, pureScale®,PureSystems®, QRadar®, Rational®, Rhapsody®, Smarter Commerce®,SoDA, SPSS, Sterling Commerce®, StoredIQ, Tealeaf®, Tivoli® Trusteer®,Unica®, urban{code}®, Watson, WebSphere®, Worklight®, X-Force® andSystem z® Z/OS, are trademarks of International Business MachinesCorporation, registered in many jurisdictions worldwide. Other productand service names might be trademarks of IBM or other companies. Acurrent list of IBM trademarks is available on the Web at "Copyright andtrademark information" at: www.ibm.com/legal/copytrade.shtml.

Page 43: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

InterConnect2017

43 3/17/2017

Page 44: InterConnect 2017 : Programming languages in the enterprise: Which language should I use?

Backup

44 3/17/2017