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)
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)
24. • Event-driven, single-threaded
model
• Eliminates concurrency and
thread-safety worries
• Integration with JSON APIs
24 3/17/2017
Why Node.js? Simple to use
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
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.