In addition to the traditional languages such as COBOL, C++, and PL/I, there are multiple modern languages that are being adopted by developers worldwide. Java, C++, JavaScript, Go and Swift are enriching the server ecosystem, and they each offer different capabilities. This session will provide an overview of the trends in modern programing languages and how enterprise clients are using them. The discussion will focus on some of the newest languages: Go and Swift, and the efforts made by IBM to bring those languages to the server and cloud platforms.
visit http://www-03.ibm.com/systems/z/solutions/enterprise-devops/
2. 2 3/17/2017
Please note
IBMâs statements regarding its plans, directions, and intent
are subject to change or withdrawal without notice at IBMâs
sole discretion.
Information regarding potential future products is intended to
outline our general product direction and it should not be relied
on in making a purchasing decision.
The information mentioned regarding potential future products
is not a commitment, promise, or legal obligation to deliver
any material, code or functionality. Information about potential
future products may not be incorporated into any contract.
The development, release, and timing of any future features
or functionality described for our products remains at our sole
discretion.
Performance is based on measurements and projections
using standard IBM benchmarks in a controlled environment.
The actual throughput or performance that any user will
experience will vary depending upon many factors, including
considerations such as the amount of multiprogramming in
the userâs job stream, the I/O configuration, the storage
configuration, and the workload processed. Therefore, no
assurance can be given that an individual user will achieve
results similar to those stated here.
3. ⢠The Application Developers
⢠Modern Languages for Enterprise
Servers
⢠Java
⢠Node.js
⢠Swift
⢠Demo â CICS & Swift
3 3/17/2017
Agenda
7. 42%
50%
19%
45%
Mobile Apps Desktop Apps Internet of Things Cloud & Backend
Services
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)
8. ⢠Developers are typically multi-
lingual, using the language that
makes sense for the projects they
are working on
⢠Java maintains the top spot despite
rumors of its decline
⢠JavaScript the most popular
scripting language
⢠Swift is on the rise (the newest
language 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.
10. 10 3/17/2017
Modern Application Design
Public Cloud Services
On-prem Services
User-facing Client Apps
Things / Sensors
End Users
11. 11 3/17/2017
Modern Application Design
Public Cloud Services
On-prem Services
User-facing Client Apps
Things / Sensors
End Users
Developer Experience
12. 12 3/17/2017
Modern Application Design
Public Cloud Services
On-prem Services
User-facing Client Apps
Things / Sensors
End Users
Developer Experience
Java
Node.js
Swift
Java
Node.js
Swift
Java
Node.js
Swift
13. 13 3/17/2017
Modern Application Design
Public Cloud Services
On-prem Services
User-facing Client Apps
Things / Sensors
End Users
Developer Experience
Java
Node.js
Swift
Java
Node.js
Swift
Java
Node.js
Swift
14. 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
Java
Node.js
Swift
Java
Node.js
Swift
Java
Node.js
Swift
15. 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)
COBOL
App
DB2
Java
Node.js
Swift
2
Java
Node.js
Swift
Java
Node.js
Swift
Java
Node.js
Swift
Java
Node.js
Swift
IMS
Java
Node.js
Swift
Java
Node.js
Swift
mongoDB
mariaDB
Future Intention
z System
16. 16 3/17/2017
Why do we need modern languages on IBM z Systems / LinuxONE?
Performance: Put Your Back-End Closer to Your Data
Front
End
3
Front
End
Back
End
Back
End
z System
mongoDB/
mariaDB
DB2/
IMS
Back
End
SLOW
FASTFASTFAST
18. 18
Why Java?
There are
14 million
Java developers
80%
of the worldâs corporate data
resides on or originates on the
mainframe
Two
pervasive
technologiesâŚ
âŚcombined for
powerful
performanceâŚ
19. 19 19
Classified Java projects
as >= successful
now have Java applications
in 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 Architects
System programmers
Application Developers
had the most influence
On Java on z projects
Survey Results:
Clients are successfully
using Java on mainframe
23. 23 3/17/2017
Why Node.js? Productivity
⢠Large repository of modules:
⢠NPM: Node Package Manager
⢠Repository of community
contributed modules
⢠Developers love it!
⢠400k modules and growing!
⢠3x growth rate vs other
runtimes
⢠High productivity for application
developers (due to available modules)
Node.js
(Feb 16, 2017 â modulecounts.com)
25. ⢠Node.js leverages the
underlying async i/o support in
the OS
⢠Thousands of concurrent
connections with minimal
overhead
25 3/17/2017
Why Node.js? Scalable
26. 26 3/17/2017
IBM SDK for Node.js
Combine modern web JavaScript + Node.js applications with the
benefits 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
27. 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
28. 28 3/17/2017
Benefits of Co-locating Node.js with Data
DB2
Twitter
Linux
zOS
Accessing DB2
data on z/OS
Node.js co-
located on
Linux on z vs
off-platform
60% Faster
Response
Time
2.5x Better
Throughput
z/OS Connect
IMS
WebSphere
App Server
CICS
29. 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*
30. 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
32. 32 3/17/2017
Swift Ecosystem
WWDC 2014
Apple releases a
new programming
language called
âSwiftâ
WWDC 2015
Apple announces
to open source
Swift
âSwift is growing
faster than anything
else we trackâ
June 2014
June 2015
July 2015
Nov. 2015
Apple releases Swift
as Open Source.
Dec. 3, 2015
Jan. 2016
Programming Language Rankings
Swift âmeteoric riseâ continues. âSwift
moves up one spot from #18 to #17
Y/YâŚand is within hailing distance of
out Tier 1 languagesâ.
Introducing the IBM
Swift Sandbox
Feb 2016
IBM
InterConnect
2016
IBM to bring Swift to
the cloud to radically
simplifying end-to-end
development of apps
Swift #2 âMost Lovedâ
Nov. 2016
Mar. 2016
Tokyo
Sep. 2016
NYC
IBM Bluemix Runtime
for Swift
ďź Industry backing
ďź Developers acceptance
ďź Tools & packages
ďź Conferences & meetups
35. Easy to learn
Simple to use
Strong foundation on LLVM
35 3/17/2017
Why Swift? Modern
36. ⢠Type safe
⢠Helps developers refactor,
extend, iterate on solutions.
⢠Error detection at compile time
⢠Automatic initialization
⢠Variables are automatically
initialized
⢠Memory is automatically allocated
and managed.
36 3/17/2017
Why Swift? Safe
37. 37 3/17/2017
We have already started the journey
⢠IBM has been working with the open source community to improve
Swift for the server platform, with many changes already integrated into
Swift 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 z
ecosystem (contact us to join our beta program).
38. ⢠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
39. ⢠We are looking for innovators and
early adopters
⢠For both Swift & Node.js
⢠Validate user scenarios and get
early access to the latest drivers.
⢠If interested, contact:
⢠Shereen Ghobrial:
shereen@ca.ibm.com
⢠Roland Koo:
rkoo@ca.ibm.com
39 3/17/2017
You can impact the future
41. 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 form
without written permission from IBM.
U.S. Government Users Restricted Rights â use, duplication or
disclosure restricted by GSA ADP Schedule Contract with IBM.
Information in these presentations (including information relating to
products that have not yet been announced by IBM) has been reviewed
for accuracy as of the date of initial publication and could include
unintentional technical or typographical errors. IBM shall have no
responsibility to update this information. This document is distributed
âas isâ without any warranty, either express or implied. In no event
shall IBM be liable for any damage arising from the use of this
information, including but not limited to, loss of data, business
interruption, loss of profit or loss of opportunity. IBM products and
services are warranted according to the terms and conditions of the
agreements 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 previously
installed. Regardless, our warranty terms apply.â
Any statements regarding IBM's future direction, intent or product
plans are subject to change or withdrawal without notice.
Performance data contained herein was generally obtained in a
controlled, isolated environments. Customer examples are presented
as illustrations of how those customers have used IBM products and
the results they may have achieved. Actual performance, cost, savings or
other results in other operating environments may vary.
References in this document to IBM products, programs, or services
does not imply that IBM intends to make such products, programs or
services available in all countries in which IBM operates or does
business.
Workshops, sessions and associated materials may have been prepared
by independent session speakers, and do not necessarily reflect the
views of IBM. All materials and discussions are provided for informational
purposes only, and are neither intended to, nor shall constitute legal or
other guidance or advice to any individual participant or their specific
situation.
It is the customerâs responsibility to insure its own compliance with legal
requirements and to obtain advice of competent legal counsel as to
the identification and interpretation of any relevant laws and regulatory
requirements that may affect the customerâs business and any actions
the customer may need to take to comply with such laws. IBM does not
provide legal advice or represent or warrant that its services or products
will ensure that the customer is in compliance with any law.
42. 42 3/17/2017
Notices and disclaimers
continued
Information concerning non-IBM products was obtained from the
suppliers of those products, their published announcements or other
publicly available sources. IBM has not tested those products in
connection with this publication and cannot confirm the accuracy of
performance, compatibility or any other claims related to non-IBM
products. Questions on the capabilities of non-IBM products should be
addressed to the suppliers of those products. IBM does not warrant the
quality of any third-party products, or the ability of any such third-party
products to interoperate with IBMâs products. IBM expressly disclaims
all warranties, expressed or implied, including but not limited to, the
implied warranties of merchantability and fitness for a particular,
purpose.
The provision of the information contained herein is not intended to, and
does 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 Document
Management 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ÂŽ and
System zÂŽ Z/OS, are trademarks of International Business Machines
Corporation, registered in many jurisdictions worldwide. Other product
and service names might be trademarks of IBM or other companies. A
current list of IBM trademarks is available on the Web at "Copyright and
trademark information" at: www.ibm.com/legal/copytrade.shtml.