Java 8 - Statements/directions/themes
Converged JVM
JavaFX merged into JDK (deprecate Swing)
Abandon Java Applets
Java Client: desktop, embedded (ARM devices); touch screen support (Windows 8)
Bring SE [Embedded] and ME closer together (CLDC 8 and profiles)
Interoperability between JVM languages (Nashorn)
Language Innovation
Lambda (“closures”) ,
Collections with Streams API
Concurrency
7. 7
2007 Heyday of Java
• JavaOne biggest developer event in the world
• Java both Hot and Cool!
• Java headed for dominance on any device
– Mobile options open
• FX revolution started (=> TV, Blu-Ray, designers)
• Gaming and Virtual Worlds (Wonderland)
• Java to become open source (OpenJDK)
• JAVA was the Nasdaq Stock Symbol for Sun
9. 9
Dark clouds were gathering
took forever…
Smartphone and
Tablet revolution –
closed platforms
Android
(Dalvik VM) left
Java fold
New Kids on the Block -
scripting
languages, anything
new/hot
How do you make
money with Java tm?
15. 15
What happened in recent
years?
• JVMs
• JVM languages
• JVM platforms (WOR-oqafp)
• FX
• Java Community
– Vendors
– The rest of us
– Kids
16. 16
Many JVMs
• Zing
• Zulu
• BEA JRockit
• Sun HotSpot
• Apache Harmony
• IBM J9 VM
• Kaffe
• Jikes RVM
• JamVM
• Excelsior JET
• IcedTea
• OpenJDK
17. 17
Oracle‟s Converged JVM
roadmap
• Merge Sun HotSpot & BEA JRockit => Oracle HotSpot JVM
– Use HotSpot as the basis for the future JVM
– Cherry-pick features and port
– Same JVM for everything from embedded all the way up to
enterprise
• Make JRockit tooling available with unified
HotSpot JVM
– Mission Control & Flight Recorder (7u40)
19. 19
Oracle‟s platform roadmap
• Target platforms are
– Desktop Client
– Enterprise Server
– Mobile (feature phones) and Embedded devices
• No [plans for] JVM on iOS or other tablets or smart phones
– However: Embedded JVM in iOS and Android Apps
• No Java Applet browser plugin
– [please] No more Applets!
20. Java 7 on OS X and
Linux/ARM
Ethernet
USB
SD
Card
Audio RCA
Video
General
Purpose I/O
Power
HDMI
Image source: Boston Ltd., UK
22. Java SE 8 Compact Profiles
SE Full JRE
Hotspot VM
Lang & Util Base Libraries
Other Base Libraries
Integration Libraries
UI & Toolkits
Optional Components
Hotspot VM
Base Compact1 Classes
SE 8 Compact
Profiles
Compact2 Class libraries
Compact3 Class libraries
1
2
3
23. 23
Use cases for Compact Profiles
• Kiosk
• Hand held device
• Home Gateway
• Electronic Tollbooth
• Oracle Mobile Application Framework
– Generic app for iOS & Android with embedded JVM for
deploying custom Java/Apache Cordova apps
• App Store deployment of Java Client applications
– Windows 8, Apple OSX
24. Java ME 8 Focus
Platform
Footprint
Device
CPU/
GPU/I-O
ARM 7 Cortex M ARM9/11 MIPS32 - ARM Cortex A – PPC - Intel Atom
50KB-1MB
1MB-10MB
10MB-100MB Java ME
Java SE
Java
Card
25. Java SE 8
• Description
- CLDC 8 is an long-anticipated, evolutionary update for CLDC 1.1.1 to bring
the VM, Java language and core API libraries in alignment with Java SE 8
• Key Features
- Synchronize Java SE 8 language features into Java ME
- CLDC 8 is an extended strict subset of Java SE 8
- Introduce developer-friendly Java SE APIs
- Includes updated Generic Connection Framework (GCF) 8
- Virtual Machine update to align with Java SE developer tools
- Remain small and enable footprint optimizations
- Backward binary compatible
- Enable 9+ Million Java developers to develop for Java Embedded
CLDC 8 High-Level Overview
CLDC 8
Bringing The World of Java SE to Java ME
28. 30
Java 8 „theme‟:
Interoperability on JVM or The Polyglot JVM
• Easier interoperability between Java and other JVM languages
• Project Nashorn: very fast JavaScript engine embedded in JVM
– Available from Java code to execute JavaScript
– Allows JavaScript to invoke Java as well
– “Oracle is in the process of developing node.jar, a java implementation of node.js to
also run on the JVM via Nashorn”
29. 31
Story of FX
• Started as F3 by Chris Oliver
• Announced at JavaOne 2007
– And every JavaOne since
• Java FX Script 1.0 December 2008
• 2.0 release October 2011
– (no more FX Script)
• FX 8 – March 2014
– Included in OpenJDK
– To replace Swing
– On desktop & embedded
36. 38
Java 8
• Java 8 - Statements/directions/themes
– Converged JVM
– JavaFX merged into JDK (deprecate Swing)
– Abandon Java Applets
– Java Client: desktop, embedded (ARM devices); touch screen support (Windows 8)
– Bring SE [Embedded] and ME closer together (CLDC 8 and profiles)
– Interoperability between JVM languages (Nashorn)
• Language Innovation
– Lambda (“closures”) ,
– Collections with Streams API
– Concurrency
– …
37. Java SE - recent timeline
20152013 2014 2016
JDK 8 (Q1 2014)
•Lambda
•JVM Convergence
•JavaScript Interop
•JavaFX 8
•3D API
•Java SE Embedded
support
•Enhanced HTML5 support
7u40
• Java Flight Recorder
• Java Mission Control 5.2
• Java Discovery Protocol
• Native memory tracking
• Local Security Policy
NetBeans IDE 7.3
• New hints and refactoring
• Scene Builder Support NetBeans IDE 8
•JDK 8 support
•Scene Builder 2.0 support
Scene Builder 2.0
•JavaFX 8 support
•Enhanced Java IDE support
7u21
• Java Client Security Enhancements
• App Store Packaging tools
Scene Builder 1.1
• Linux support
39. 41
Beyond Java 8
• Installer/Embedded JVM
• Further language evolution
• JigSaw (Modularity)
• Java on GPU (Graphics Processing Units)
• Cloud
• Interoperability
• No backward compatibility
beyond three versions
for source & target
(7,8,9 – no more Java 5,6)
– Note: Java 8 does not accept
Java 1.4 as a target
40. Java SE/ME/FX Roadmap
20152014 2016
JDK 8 (Q1 2014)
•Lambda
•JVM Convergence
•JavaScript Interop
•JavaFX 8
•3D API
•Java SE Embedded
support
•Enhanced HTML5 support
7u40
• Java Flight Recorder
• Java Mission Control 5.2
• Java Discovery Protocol
• Native memory tracking
• Local Security Policy
JDK 9
•Modularity – Jigsaw
•Interoperability
•Cloud
•Ease of Use
•JavaFX JSR
•Optimizations
IDE 7.3
d refactoring
r Support
NetBeans IDE 8
• JDK 8 support
• Scene Builder 2.0 support
Scene Builder 2.0
• JavaFX 8 support
• Enhanced Java IDE support
NetBeans IDE 9
• JDK 9 support
• Scene Builder 3.0 support
Scene Builder 3.0
• JavaFX 9 support
ecurity Enhancements
ckaging tools
JDK 8u20
• Deterministic G1
• Java Mission Control 6.0
• Improved JRE installer
• App bundling
enhancements
JDK 8u40
Scene Builder 1.1
• Linux support
In addition to the incremental improvements to Java 7, we have also increased the set of platforms supported by Oracle from Linux, Windows, and Solaris to now also include Mac OS X (“ten”) and Linux/ARM for ARM based PCs such as the Raspberry Pi and emerging ARM based microservers.These are the first new ports of Java since 64 bit Windows in 2007 and 64 bit Linux in 2003.So Oracle has released as many new ports In the last year for desktops and servers as were done in the preceding decade of Java SE’s history.And new for JavaOne Brasil, I am pleased to relate that we will be making EA builds of the Linux ARM binary which supports the Hard Float ABIfor ARM v6/7 on platforms like the raspberry Pi available by the end of this calendar year.
JEP 161
This slide gives a high level summary of the updates included in the CLDC 8 specification being submitted by Oracle to the JCP process.Key point – ME 8 aims to make CLDC 8 a strict subset of SE 8 while adding language, VM and core API features that make it more useful and powerful to developers in the small embedded and mobile handset device markets
The ME 8 Platform will be a major evolution of the Java ME platform: that will offer modernized API to enable ease of development and deployment of the latest expected application functionality in the small embedded as well as mobile device markets.that begins a process of bringing more developers from Java SE’s ecosystem into the Java ME ecosystem through a common language and application development process.that brings key focus on the needs of small embedded devices for relevant Java APIs (in the form of flexible external device access API that support tasks that are common to embedded systems developers) and tools that support and enhance developer productivity in working with prototype device boards.
The TIOBE Programming Community index is an indicator of the popularity of programming languages. The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third party vendors. Popular search engines such as Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu are used to calculate the ratings. Observe that the TIOBE index is not about the best programming language or the language in which most lines of code have been written.The index can be used to check whether your programming skills are still up to date or to make a strategic decision about what programming language should be adopted when starting to build a new software system. http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Just to summarize the releases we have been taking about, this is the roadmap, Not going to go through it in detail.CHANGED: JDK 8, from “Complete JVM convergence to just JVM Convergence”Added the features for 7u10
Just to summarize the releases we have been taking about, this is the roadmap, Not going to go through it in detail.CHANGED: JDK 8, from “Complete JVM convergence to just JVM Convergence”Added the features for 7u10