SlideShare a Scribd company logo
1 of 60
Download to read offline
<Insert Picture Here>
Java SE Update
Steve Elliott – Oracle UK
steve.elliott@oracle.com
November 2010
2
The following is intended to outline our general
product direction. It is intended for information
purposes only, and may not be incorporated into any
contract. It is not a commitment to deliver any
material, code, or functionality, and should not be
relied upon in making purchasing decisions.
The development, release, and timing of any features
or functionality described for Oracle’s products
remains at the sole discretion of Oracle.
3
4
5
?
6
Productivity
Performance
Universality
Modularity
Integration
Servicability
7
Project Coin
Project Lambda
The DaVinci Machine
Project Jigsaw
JVM Convergence
Roadmap
Productivity
Performance
Universality
Modularity
Integration
Servicability
8
Project Coin
Small (Language) Changes
openjdk.java.net/projects/coin
●
Diamond
●
Try-with-resources
●
Improved integral Literals
●
Strings in switch
●
Varargs warnings
●
Multi-catch & precise rethrow
●
Joe Darcy -
http://blogs.sun.com/darcy
coin, n. A piece of small change
coin, v. To create a new language
9
Evolving the Language
From “Evolving the Java Language” - JavaOne 2005
• Java language principles
– Reading is more important than writing
– Code should be a joy to read
– The language should not hide what is happening
– Code should do what it seems to do
– Simplicity matters
– Every “good” feature adds more “bad” weight
– Sometimes it is best to leave things out
• One language: with the same meaning everywhere
– No dialects
Also see “Growing a Language” - Guy Steele 1999
10
Evolving the Language
From “Evolving the Java Language” - JavaOne 2005
• We will evolve the Java Language
- but cautiously, with a long term view
– We want Java to be around in 2030
– We can't take a slash and burn approach
– “first do no harm”
• We will add a few select features periodically
– Aimed at developer productivity
– While preserving clarity and simplicity
11
Project Coin Constraints
• Small language changes
– Small in specification, implementation, testing
– No new keywords!
– Wary of type system changes
• Coordinate with larger language changes
– Project Lambda
– Modularity
• One language, one javac
12
Better Integer Literal
• Binary literals
• With underscores for clarity
int mask = 0b101010101010;
int mask = 0b1010_1010_1010;
long big = 9_223_783_036_967_937L;
13
String in Switch
int monthNameToDays(String s, int year) {
switch(s) {
case "April": case "June":
case "September": case "November":
return 30;
case "January": case "March":
case "May": case "July":
case "August": case "December":
return 31;
case "February":
...
default:
...
14
• Pre generics
List strList = new ArrayList();
15
• Pre generics
• With generics
List strList = new ArrayList();
List<String> strList = new ArrayList<String>();
List<Map<String, List<String>> strList =
new ArrayList<Map<String, List<String>>();
16
Diamond
• Pre generics
• With generics
• With diamond (<>) to infer the type
List strList = new ArrayList();
List<String> strList = new ArrayList<String>();
List<Map<String, List<String>> strList =
new ArrayList<Map<String, List<String>>();
List<String> strList = new ArrayList<>();
List<Map<String, List<String>> strList =
new ArrayList<>();
17
Copying Streams
18
19
20
Try-with-resources
(Automatic Resource Management)
21
Project Lambda
Closures and more
openjdk.java.net/projects/lambda
●
Lambda expressions
●
SAM conversion with target typing
●
Method references
●
Library enhancements for internal iteration
●
Default methods for interface evolution
●
Brian Goetz - @BrianGoetz
●
Alex Buckley - http://blogs.sun.com/abuckley
22
Motivation for Lambda Project
• Moore's law, multi core chip
• Library is one of Java's key
strength
– Better libraries are key to making
parallelization better
• Higher level operations tend to
improve readability of code as
well as performance
• Without more language
support for parallel idioms,
people will instinctively reach
for serial idioms
23
UltraSPARC T1
( Niagara 1 (2005) )
8 x 4 = 32
UltraSPARC T2
( Niagara 2 (2007) )
8 x 8 = 64
UltraSPARC T3
( Rainbow Falls )
16 x 8 = 128
24
For loop – External Iteration
• Code is inherently serial
– Iterate through students serially
– Stateful – use of > and highestScore
– External iteration – client of students determines iteration
mechanism
double highestScore = 0.0;
for (Student s : students) {
if ((s.gradYear == 2010)
&& (s.score > highestScore))
highestScore = s.score;
}
25
Hypothetical Internal Iteration
• Not inherently serial
– students traversal not determined by developer
– Looks like a functional language
• Anonymous inner class!
double highestScore = students
.filter(new Predicate<Student>() {
public boolean isTrue(Student s) {
return s.gradYear == 2010;
}})
.map(new Extractor<Student,Double>() {
public Double extract(Student s) {
return s.score;
}})
.max();
26
Introducing Lambda Expressions
• Lambda expressions introduced with #
– Signal to the JVM to defer execution of the code
– Body may be an expression
• Lambda expression are not syntactic sugar for
anonymous inner class
– Implemented with MethodHandle from JSR-292
double highestScore = students
.filter(#{ Student s -> s.gradYear == 2010 })
.map(#{ Student s -> s.score })
.max();
27
The DaVinci Machine Project
JSR 292
A multi-language renaissance for the JVM
openjdk.java.net/projects/mlvm
●
Dynamic Invocation
- InvokeDynamic bytecode
●
Method Handles
●
Tail Calls
●
Tuples
●
Continuations
●
Interface Injection ...
●
John Rose -
http://blogs.sun.com/jrose
28
29
30
31
32
Hotspot Optimisations
33
Project Jigsaw
Modularity in the Java platform
openjdk.java.net/projects/jigsaw
●
Module System for JDK
●
Mark Reinhold
http://blogs.sun.com/mr
●
Alex Buckley
http://blogs.sun.com/abuckley
34
Problems
• Application construction, packaging and publication
– “JAR Hell”
• Performance
– Download time
– Startup time
• Platform scalability
– Down to small devices
35
Solution – The Modular Java Platform
• Enables escape from “JAR Hell”
– Eliminates class path
– Package modules for automatic download & install
– Generate native packages – deb, rpm, ips, etc
• Enables significant performance improvements
– Incremental download → fast classloading
– Optimise module content during installation
• Platform scalability – down to small devices
– Well-specified SE subsets can fit into small devices
36
Modularity
• Grouping
• Dependencies
• Versioning
• Encapsulation
• Optional modules
• Virtual modules
37
module-info.java
module com.foo @ 1.0.0 {
class com.foo.app.Main
requires org.bar.lib @ 2.1-alpha;
requires edu.baz.util @ 5.2_11;
provides com.foo.app.lib @ 1.0.0;
}
Module name
Version
Entry point
Dependency
Virtual module
38
module-info.java
Optional modules
module com.foo @ 1.0.0 {
class com.foo.app.Main
requires org.bar.lib @ 2.1-alpha;
requires edu.baz.util @ 5.2_11;
provides com.foo.app.lib @ 1.0.0;
requires optional com.foo.extra;
}
39
module-info.java
module com.foo.secret @ 1 {
permits com.foo.lib;
}
Encapsulating modules
40
Packaging Modules
• Compiling
• Packaging – supports native package format
• Create and install libraries
• Link a repository to library
• Execute
javac -modulepath mods src/com/foo/...
jpkg -modulepath mods jmod com.foo.app ...
jpkg -modulepath mods debs com.foo.app ...
jmod -L mlib create
jmod -L mlib install *.jmod
java -L mlib -m com.foo.app
jmod add-repo http://jig.sfbay
41
42
OSGi ?
Java SE 8 JSR :
43
JVM
44
JVM Convergence
●
Two mainstream JVMs
●
HotSpot
●
Versatile (client and server), market share leader, high
quality and performance
●
JRockit
●
Specialized for the Oracle server stack, basis of value-adds
like Mission Control, Virtual Edition and Soft Real-Time
●
Wasteful to continue development on both, so
●
Goal: Single JVM incorporating best features
45
JVM Convergence
●
More engineers working on HotSpot so..
●
Converged JVM based on HotSpot
with all goodness from JRockit
●
Open-sourced via OpenJDK
●
Some value-add such as Mission Control will remain proprietary
●
Free binary download includes closed source goodies
●
Same use license as before
●
Oracle committed to continued investment
●
JVM teams have been merged, working on feature transfer
●
And moving forward on new projects
●
Will be a multi-year process
46
47
JRockit Mission Control
48
Roadmap
49
http://blogs.sun.com/mr
50
51
52
GPLv2+ Classpath Exception
53
54
jcp.org : JSR 336 – Java SE 7
55
jcp.org : JSR 337 – Java SE 8
56
JDK 7 Schedule
57
58
openjdk.java.net/projects/jdk
7download.java.net/jdk7
59
(Some) More...
Mark Reinhold
http://blogs.sun.com/mr ( @mreinhold )
Henrik Stahl
http://blogs.oracle.com/henrik
Dalobor Topic
http://robilad.livejournal.com ( @robilad )
Open JDK
http://openjdk.java.net ( /projects/jdk7 ) ( @openjdk )
OTN
http://www.oracle.com/technetwork/java ( @oracletechnet )
JavaOne 2010
http://www.oracle.com/us/javaonedevelop
60
Thank You!
Q&A

More Related Content

What's hot

Elements of Java Language
Elements of Java Language Elements of Java Language
Elements of Java Language Hitesh-Java
 
Basic Java Programming
Basic Java ProgrammingBasic Java Programming
Basic Java ProgrammingMath-Circle
 
Java Presentation For Syntax
Java Presentation For SyntaxJava Presentation For Syntax
Java Presentation For SyntaxPravinYalameli
 
Core Java Certification
Core Java CertificationCore Java Certification
Core Java CertificationVskills
 
Java and Java platforms
Java and Java platformsJava and Java platforms
Java and Java platformsIlio Catallo
 
Session 01 - Introduction to Java
Session 01 - Introduction to JavaSession 01 - Introduction to Java
Session 01 - Introduction to JavaPawanMM
 
Core Java Tutorials by Mahika Tutorials
Core Java Tutorials by Mahika TutorialsCore Java Tutorials by Mahika Tutorials
Core Java Tutorials by Mahika TutorialsMahika Tutorials
 
02 introductionto java
02 introductionto java02 introductionto java
02 introductionto javaAPU
 
Presenter manual core java (specially for summer interns)
Presenter manual  core java (specially for summer interns)Presenter manual  core java (specially for summer interns)
Presenter manual core java (specially for summer interns)XPERT INFOTECH
 
Object Oriented Programming with Java
Object Oriented Programming with JavaObject Oriented Programming with Java
Object Oriented Programming with Javabackdoor
 
Writing DSL's in Scala
Writing DSL's in ScalaWriting DSL's in Scala
Writing DSL's in ScalaAbhijit Sharma
 
java training in jaipur|java training|core java training|java training compa...
 java training in jaipur|java training|core java training|java training compa... java training in jaipur|java training|core java training|java training compa...
java training in jaipur|java training|core java training|java training compa...infojaipurinfo Jaipur
 
Using Scala for building DSLs
Using Scala for building DSLsUsing Scala for building DSLs
Using Scala for building DSLsIndicThreads
 

What's hot (20)

Elements of Java Language
Elements of Java Language Elements of Java Language
Elements of Java Language
 
Basic Java Programming
Basic Java ProgrammingBasic Java Programming
Basic Java Programming
 
Java Presentation For Syntax
Java Presentation For SyntaxJava Presentation For Syntax
Java Presentation For Syntax
 
Core Java Certification
Core Java CertificationCore Java Certification
Core Java Certification
 
Java and Java platforms
Java and Java platformsJava and Java platforms
Java and Java platforms
 
Session 01 - Introduction to Java
Session 01 - Introduction to JavaSession 01 - Introduction to Java
Session 01 - Introduction to Java
 
Presentation on java
Presentation  on  javaPresentation  on  java
Presentation on java
 
Java tutorial PPT
Java tutorial PPTJava tutorial PPT
Java tutorial PPT
 
Java for C++ programers
Java for C++ programersJava for C++ programers
Java for C++ programers
 
Java platform
Java platformJava platform
Java platform
 
Core Java Tutorials by Mahika Tutorials
Core Java Tutorials by Mahika TutorialsCore Java Tutorials by Mahika Tutorials
Core Java Tutorials by Mahika Tutorials
 
Scala-Ls1
Scala-Ls1Scala-Ls1
Scala-Ls1
 
Java training in delhi
Java training in delhiJava training in delhi
Java training in delhi
 
Java SE 8 library design
Java SE 8 library designJava SE 8 library design
Java SE 8 library design
 
02 introductionto java
02 introductionto java02 introductionto java
02 introductionto java
 
Presenter manual core java (specially for summer interns)
Presenter manual  core java (specially for summer interns)Presenter manual  core java (specially for summer interns)
Presenter manual core java (specially for summer interns)
 
Object Oriented Programming with Java
Object Oriented Programming with JavaObject Oriented Programming with Java
Object Oriented Programming with Java
 
Writing DSL's in Scala
Writing DSL's in ScalaWriting DSL's in Scala
Writing DSL's in Scala
 
java training in jaipur|java training|core java training|java training compa...
 java training in jaipur|java training|core java training|java training compa... java training in jaipur|java training|core java training|java training compa...
java training in jaipur|java training|core java training|java training compa...
 
Using Scala for building DSLs
Using Scala for building DSLsUsing Scala for building DSLs
Using Scala for building DSLs
 

Viewers also liked

The Forces Driving Java
The Forces Driving JavaThe Forces Driving Java
The Forces Driving JavaSteve Elliott
 
London Java Community (LJC) Open Meeting Keynote - Nov 2015
London Java Community (LJC) Open Meeting Keynote - Nov 2015London Java Community (LJC) Open Meeting Keynote - Nov 2015
London Java Community (LJC) Open Meeting Keynote - Nov 2015Steve Elliott
 
The Ghosts of Java Past, Present and Yet To Come
The Ghosts of Java Past, Present and Yet To ComeThe Ghosts of Java Past, Present and Yet To Come
The Ghosts of Java Past, Present and Yet To ComeSteve Elliott
 
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...Cédric Leblond
 
Java Update - Bristol JUG. Part 1 - Java SE.
Java Update - Bristol JUG. Part 1 - Java SE.Java Update - Bristol JUG. Part 1 - Java SE.
Java Update - Bristol JUG. Part 1 - Java SE.Steve Elliott
 
Java Update - Bristol JUG. Part 2 - Java EE / Java in the Cloud.
Java Update - Bristol JUG. Part 2 - Java EE / Java in the Cloud.Java Update - Bristol JUG. Part 2 - Java EE / Java in the Cloud.
Java Update - Bristol JUG. Part 2 - Java EE / Java in the Cloud.Steve Elliott
 
Docklands jug-aug15-sde
Docklands jug-aug15-sdeDocklands jug-aug15-sde
Docklands jug-aug15-sdeSteve Elliott
 
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker  : des conteneurs pour tout faire ? Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker : des conteneurs pour tout faire ? ALTER WAY
 
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...
Docker nice meetup #1   construire, déployer et exécuter vos applications, ...Docker nice meetup #1   construire, déployer et exécuter vos applications, ...
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...adri1s
 
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide
 
Java 8-streams-and-parallelism
Java 8-streams-and-parallelismJava 8-streams-and-parallelism
Java 8-streams-and-parallelismDeepak Shevani
 
Gérer son environnement de développement avec Docker
Gérer son environnement de développement avec DockerGérer son environnement de développement avec Docker
Gérer son environnement de développement avec DockerJulien Dubois
 
Docker du mythe à la réalité
Docker du mythe à la réalitéDocker du mythe à la réalité
Docker du mythe à la réalitéZenika
 
What's New in WebLogic 12.1.3 and Beyond
What's New in WebLogic 12.1.3 and BeyondWhat's New in WebLogic 12.1.3 and Beyond
What's New in WebLogic 12.1.3 and BeyondOracle
 
Docker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à DockerDocker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à DockerThibaut Marmin
 

Viewers also liked (20)

The Forces Driving Java
The Forces Driving JavaThe Forces Driving Java
The Forces Driving Java
 
London Java Community (LJC) Open Meeting Keynote - Nov 2015
London Java Community (LJC) Open Meeting Keynote - Nov 2015London Java Community (LJC) Open Meeting Keynote - Nov 2015
London Java Community (LJC) Open Meeting Keynote - Nov 2015
 
Chef formation-chef
Chef formation-chefChef formation-chef
Chef formation-chef
 
The Ghosts of Java Past, Present and Yet To Come
The Ghosts of Java Past, Present and Yet To ComeThe Ghosts of Java Past, Present and Yet To Come
The Ghosts of Java Past, Present and Yet To Come
 
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
 
Java Update - Bristol JUG. Part 1 - Java SE.
Java Update - Bristol JUG. Part 1 - Java SE.Java Update - Bristol JUG. Part 1 - Java SE.
Java Update - Bristol JUG. Part 1 - Java SE.
 
Java Update - Bristol JUG. Part 2 - Java EE / Java in the Cloud.
Java Update - Bristol JUG. Part 2 - Java EE / Java in the Cloud.Java Update - Bristol JUG. Part 2 - Java EE / Java in the Cloud.
Java Update - Bristol JUG. Part 2 - Java EE / Java in the Cloud.
 
Docklands jug-aug15-sde
Docklands jug-aug15-sdeDocklands jug-aug15-sde
Docklands jug-aug15-sde
 
JahiaOne - Performance Tuning
JahiaOne - Performance TuningJahiaOne - Performance Tuning
JahiaOne - Performance Tuning
 
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker  : des conteneurs pour tout faire ? Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
 
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...
Docker nice meetup #1   construire, déployer et exécuter vos applications, ...Docker nice meetup #1   construire, déployer et exécuter vos applications, ...
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...
 
Livre blanc docker
Livre blanc docker Livre blanc docker
Livre blanc docker
 
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
 
Java 8-streams-and-parallelism
Java 8-streams-and-parallelismJava 8-streams-and-parallelism
Java 8-streams-and-parallelism
 
Gérer son environnement de développement avec Docker
Gérer son environnement de développement avec DockerGérer son environnement de développement avec Docker
Gérer son environnement de développement avec Docker
 
Présentation Docker
Présentation DockerPrésentation Docker
Présentation Docker
 
Docker du mythe à la réalité
Docker du mythe à la réalitéDocker du mythe à la réalité
Docker du mythe à la réalité
 
What's New in WebLogic 12.1.3 and Beyond
What's New in WebLogic 12.1.3 and BeyondWhat's New in WebLogic 12.1.3 and Beyond
What's New in WebLogic 12.1.3 and Beyond
 
Docker - YaJUG
Docker  - YaJUGDocker  - YaJUG
Docker - YaJUG
 
Docker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à DockerDocker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à Docker
 

Similar to Java jdk-update-nov10-sde-v3m

Java Future S Ritter
Java Future S RitterJava Future S Ritter
Java Future S Rittercatherinewall
 
DSL's with Groovy
DSL's with GroovyDSL's with Groovy
DSL's with Groovypaulbowler
 
A Journey through the JDKs (Java 9 to Java 11)
A Journey through the JDKs (Java 9 to Java 11)A Journey through the JDKs (Java 9 to Java 11)
A Journey through the JDKs (Java 9 to Java 11)Markus Günther
 
Java se-7-evolves-toulouse-jug-2001-09-14
Java se-7-evolves-toulouse-jug-2001-09-14Java se-7-evolves-toulouse-jug-2001-09-14
Java se-7-evolves-toulouse-jug-2001-09-14Baptiste Mathus
 
Polyglot and functional (Devoxx Nov/2011)
Polyglot and functional (Devoxx Nov/2011)Polyglot and functional (Devoxx Nov/2011)
Polyglot and functional (Devoxx Nov/2011)Martijn Verburg
 
Polyglot and Functional Programming (OSCON 2012)
Polyglot and Functional Programming (OSCON 2012)Polyglot and Functional Programming (OSCON 2012)
Polyglot and Functional Programming (OSCON 2012)Martijn Verburg
 
Terence Barr - jdk7+8 - 24mai2011
Terence Barr - jdk7+8 - 24mai2011Terence Barr - jdk7+8 - 24mai2011
Terence Barr - jdk7+8 - 24mai2011Agora Group
 
Java 8 selected updates
Java 8 selected updatesJava 8 selected updates
Java 8 selected updatesVinay H G
 
What's New in IBM Java 8 SE?
What's New in IBM Java 8 SE?What's New in IBM Java 8 SE?
What's New in IBM Java 8 SE?Tim Ellison
 
The State of Java under Oracle at JCertif 2011
The State of Java under Oracle at JCertif 2011The State of Java under Oracle at JCertif 2011
The State of Java under Oracle at JCertif 2011Arun Gupta
 
What we can expect from Java 9 by Ivan Krylov
What we can expect from Java 9 by Ivan KrylovWhat we can expect from Java 9 by Ivan Krylov
What we can expect from Java 9 by Ivan KrylovJ On The Beach
 
The Road to Lambda - Mike Duigou
The Road to Lambda - Mike DuigouThe Road to Lambda - Mike Duigou
The Road to Lambda - Mike Duigoujaxconf
 
Smoothing Your Java with DSLs
Smoothing Your Java with DSLsSmoothing Your Java with DSLs
Smoothing Your Java with DSLsintelliyole
 
JavaScript Miller Columns
JavaScript Miller ColumnsJavaScript Miller Columns
JavaScript Miller ColumnsJonathan Fine
 
Introduction of Java 8 with emphasis on Lambda Expressions and Streams
Introduction of Java 8 with emphasis on Lambda Expressions and StreamsIntroduction of Java 8 with emphasis on Lambda Expressions and Streams
Introduction of Java 8 with emphasis on Lambda Expressions and StreamsEmiel Paasschens
 

Similar to Java jdk-update-nov10-sde-v3m (20)

Java Future S Ritter
Java Future S RitterJava Future S Ritter
Java Future S Ritter
 
Java SE 8
Java SE 8Java SE 8
Java SE 8
 
Functional java 8
Functional java 8Functional java 8
Functional java 8
 
Unit 1
Unit 1Unit 1
Unit 1
 
DSL's with Groovy
DSL's with GroovyDSL's with Groovy
DSL's with Groovy
 
A Journey through the JDKs (Java 9 to Java 11)
A Journey through the JDKs (Java 9 to Java 11)A Journey through the JDKs (Java 9 to Java 11)
A Journey through the JDKs (Java 9 to Java 11)
 
Java se-7-evolves-toulouse-jug-2001-09-14
Java se-7-evolves-toulouse-jug-2001-09-14Java se-7-evolves-toulouse-jug-2001-09-14
Java se-7-evolves-toulouse-jug-2001-09-14
 
Polyglot and functional (Devoxx Nov/2011)
Polyglot and functional (Devoxx Nov/2011)Polyglot and functional (Devoxx Nov/2011)
Polyglot and functional (Devoxx Nov/2011)
 
Polyglot and Functional Programming (OSCON 2012)
Polyglot and Functional Programming (OSCON 2012)Polyglot and Functional Programming (OSCON 2012)
Polyglot and Functional Programming (OSCON 2012)
 
Terence Barr - jdk7+8 - 24mai2011
Terence Barr - jdk7+8 - 24mai2011Terence Barr - jdk7+8 - 24mai2011
Terence Barr - jdk7+8 - 24mai2011
 
Java 8 selected updates
Java 8 selected updatesJava 8 selected updates
Java 8 selected updates
 
Java SE 8 & EE 7 Launch
Java SE 8 & EE 7 LaunchJava SE 8 & EE 7 Launch
Java SE 8 & EE 7 Launch
 
What's New in IBM Java 8 SE?
What's New in IBM Java 8 SE?What's New in IBM Java 8 SE?
What's New in IBM Java 8 SE?
 
The State of Java under Oracle at JCertif 2011
The State of Java under Oracle at JCertif 2011The State of Java under Oracle at JCertif 2011
The State of Java under Oracle at JCertif 2011
 
What we can expect from Java 9 by Ivan Krylov
What we can expect from Java 9 by Ivan KrylovWhat we can expect from Java 9 by Ivan Krylov
What we can expect from Java 9 by Ivan Krylov
 
The Road to Lambda - Mike Duigou
The Road to Lambda - Mike DuigouThe Road to Lambda - Mike Duigou
The Road to Lambda - Mike Duigou
 
Smoothing Your Java with DSLs
Smoothing Your Java with DSLsSmoothing Your Java with DSLs
Smoothing Your Java with DSLs
 
JavaScript Miller Columns
JavaScript Miller ColumnsJavaScript Miller Columns
JavaScript Miller Columns
 
Java 9 preview
Java 9 previewJava 9 preview
Java 9 preview
 
Introduction of Java 8 with emphasis on Lambda Expressions and Streams
Introduction of Java 8 with emphasis on Lambda Expressions and StreamsIntroduction of Java 8 with emphasis on Lambda Expressions and Streams
Introduction of Java 8 with emphasis on Lambda Expressions and Streams
 

Recently uploaded

Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 

Recently uploaded (20)

Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

Java jdk-update-nov10-sde-v3m

  • 1. <Insert Picture Here> Java SE Update Steve Elliott – Oracle UK steve.elliott@oracle.com November 2010
  • 2. 2 The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.
  • 3. 3
  • 4. 4
  • 5. 5 ?
  • 7. 7 Project Coin Project Lambda The DaVinci Machine Project Jigsaw JVM Convergence Roadmap Productivity Performance Universality Modularity Integration Servicability
  • 8. 8 Project Coin Small (Language) Changes openjdk.java.net/projects/coin ● Diamond ● Try-with-resources ● Improved integral Literals ● Strings in switch ● Varargs warnings ● Multi-catch & precise rethrow ● Joe Darcy - http://blogs.sun.com/darcy coin, n. A piece of small change coin, v. To create a new language
  • 9. 9 Evolving the Language From “Evolving the Java Language” - JavaOne 2005 • Java language principles – Reading is more important than writing – Code should be a joy to read – The language should not hide what is happening – Code should do what it seems to do – Simplicity matters – Every “good” feature adds more “bad” weight – Sometimes it is best to leave things out • One language: with the same meaning everywhere – No dialects Also see “Growing a Language” - Guy Steele 1999
  • 10. 10 Evolving the Language From “Evolving the Java Language” - JavaOne 2005 • We will evolve the Java Language - but cautiously, with a long term view – We want Java to be around in 2030 – We can't take a slash and burn approach – “first do no harm” • We will add a few select features periodically – Aimed at developer productivity – While preserving clarity and simplicity
  • 11. 11 Project Coin Constraints • Small language changes – Small in specification, implementation, testing – No new keywords! – Wary of type system changes • Coordinate with larger language changes – Project Lambda – Modularity • One language, one javac
  • 12. 12 Better Integer Literal • Binary literals • With underscores for clarity int mask = 0b101010101010; int mask = 0b1010_1010_1010; long big = 9_223_783_036_967_937L;
  • 13. 13 String in Switch int monthNameToDays(String s, int year) { switch(s) { case "April": case "June": case "September": case "November": return 30; case "January": case "March": case "May": case "July": case "August": case "December": return 31; case "February": ... default: ...
  • 14. 14 • Pre generics List strList = new ArrayList();
  • 15. 15 • Pre generics • With generics List strList = new ArrayList(); List<String> strList = new ArrayList<String>(); List<Map<String, List<String>> strList = new ArrayList<Map<String, List<String>>();
  • 16. 16 Diamond • Pre generics • With generics • With diamond (<>) to infer the type List strList = new ArrayList(); List<String> strList = new ArrayList<String>(); List<Map<String, List<String>> strList = new ArrayList<Map<String, List<String>>(); List<String> strList = new ArrayList<>(); List<Map<String, List<String>> strList = new ArrayList<>();
  • 18. 18
  • 19. 19
  • 21. 21 Project Lambda Closures and more openjdk.java.net/projects/lambda ● Lambda expressions ● SAM conversion with target typing ● Method references ● Library enhancements for internal iteration ● Default methods for interface evolution ● Brian Goetz - @BrianGoetz ● Alex Buckley - http://blogs.sun.com/abuckley
  • 22. 22 Motivation for Lambda Project • Moore's law, multi core chip • Library is one of Java's key strength – Better libraries are key to making parallelization better • Higher level operations tend to improve readability of code as well as performance • Without more language support for parallel idioms, people will instinctively reach for serial idioms
  • 23. 23 UltraSPARC T1 ( Niagara 1 (2005) ) 8 x 4 = 32 UltraSPARC T2 ( Niagara 2 (2007) ) 8 x 8 = 64 UltraSPARC T3 ( Rainbow Falls ) 16 x 8 = 128
  • 24. 24 For loop – External Iteration • Code is inherently serial – Iterate through students serially – Stateful – use of > and highestScore – External iteration – client of students determines iteration mechanism double highestScore = 0.0; for (Student s : students) { if ((s.gradYear == 2010) && (s.score > highestScore)) highestScore = s.score; }
  • 25. 25 Hypothetical Internal Iteration • Not inherently serial – students traversal not determined by developer – Looks like a functional language • Anonymous inner class! double highestScore = students .filter(new Predicate<Student>() { public boolean isTrue(Student s) { return s.gradYear == 2010; }}) .map(new Extractor<Student,Double>() { public Double extract(Student s) { return s.score; }}) .max();
  • 26. 26 Introducing Lambda Expressions • Lambda expressions introduced with # – Signal to the JVM to defer execution of the code – Body may be an expression • Lambda expression are not syntactic sugar for anonymous inner class – Implemented with MethodHandle from JSR-292 double highestScore = students .filter(#{ Student s -> s.gradYear == 2010 }) .map(#{ Student s -> s.score }) .max();
  • 27. 27 The DaVinci Machine Project JSR 292 A multi-language renaissance for the JVM openjdk.java.net/projects/mlvm ● Dynamic Invocation - InvokeDynamic bytecode ● Method Handles ● Tail Calls ● Tuples ● Continuations ● Interface Injection ... ● John Rose - http://blogs.sun.com/jrose
  • 28. 28
  • 29. 29
  • 30. 30
  • 31. 31
  • 33. 33 Project Jigsaw Modularity in the Java platform openjdk.java.net/projects/jigsaw ● Module System for JDK ● Mark Reinhold http://blogs.sun.com/mr ● Alex Buckley http://blogs.sun.com/abuckley
  • 34. 34 Problems • Application construction, packaging and publication – “JAR Hell” • Performance – Download time – Startup time • Platform scalability – Down to small devices
  • 35. 35 Solution – The Modular Java Platform • Enables escape from “JAR Hell” – Eliminates class path – Package modules for automatic download & install – Generate native packages – deb, rpm, ips, etc • Enables significant performance improvements – Incremental download → fast classloading – Optimise module content during installation • Platform scalability – down to small devices – Well-specified SE subsets can fit into small devices
  • 36. 36 Modularity • Grouping • Dependencies • Versioning • Encapsulation • Optional modules • Virtual modules
  • 37. 37 module-info.java module com.foo @ 1.0.0 { class com.foo.app.Main requires org.bar.lib @ 2.1-alpha; requires edu.baz.util @ 5.2_11; provides com.foo.app.lib @ 1.0.0; } Module name Version Entry point Dependency Virtual module
  • 38. 38 module-info.java Optional modules module com.foo @ 1.0.0 { class com.foo.app.Main requires org.bar.lib @ 2.1-alpha; requires edu.baz.util @ 5.2_11; provides com.foo.app.lib @ 1.0.0; requires optional com.foo.extra; }
  • 39. 39 module-info.java module com.foo.secret @ 1 { permits com.foo.lib; } Encapsulating modules
  • 40. 40 Packaging Modules • Compiling • Packaging – supports native package format • Create and install libraries • Link a repository to library • Execute javac -modulepath mods src/com/foo/... jpkg -modulepath mods jmod com.foo.app ... jpkg -modulepath mods debs com.foo.app ... jmod -L mlib create jmod -L mlib install *.jmod java -L mlib -m com.foo.app jmod add-repo http://jig.sfbay
  • 41. 41
  • 42. 42 OSGi ? Java SE 8 JSR :
  • 44. 44 JVM Convergence ● Two mainstream JVMs ● HotSpot ● Versatile (client and server), market share leader, high quality and performance ● JRockit ● Specialized for the Oracle server stack, basis of value-adds like Mission Control, Virtual Edition and Soft Real-Time ● Wasteful to continue development on both, so ● Goal: Single JVM incorporating best features
  • 45. 45 JVM Convergence ● More engineers working on HotSpot so.. ● Converged JVM based on HotSpot with all goodness from JRockit ● Open-sourced via OpenJDK ● Some value-add such as Mission Control will remain proprietary ● Free binary download includes closed source goodies ● Same use license as before ● Oracle committed to continued investment ● JVM teams have been merged, working on feature transfer ● And moving forward on new projects ● Will be a multi-year process
  • 46. 46
  • 50. 50
  • 51. 51
  • 53. 53
  • 54. 54 jcp.org : JSR 336 – Java SE 7
  • 55. 55 jcp.org : JSR 337 – Java SE 8
  • 57. 57
  • 59. 59 (Some) More... Mark Reinhold http://blogs.sun.com/mr ( @mreinhold ) Henrik Stahl http://blogs.oracle.com/henrik Dalobor Topic http://robilad.livejournal.com ( @robilad ) Open JDK http://openjdk.java.net ( /projects/jdk7 ) ( @openjdk ) OTN http://www.oracle.com/technetwork/java ( @oracletechnet ) JavaOne 2010 http://www.oracle.com/us/javaonedevelop