Upload
hujak-hrvatska-udruga-java-korisnika-croatian-java-user-association
View
584
Download
2
Embed Size (px)
DESCRIPTION
Java news Java roadmap Java SE/EE features
Citation preview
HUJAK &
The Road
to
Java
Branko Mihaljević
Aleksander Radovan
Duško Vukmanović
The Road to Java
• History
• Present
• Future
www.hujak.hr 2
Java history timeline
• So, 20+ years of Java
www.hujak.hr 3
1995 1998 2001 2004 2007 2010 2013 2016 2019
Java SE 11
2019/20
Java SE 10
2017/18 2016 2014-3-18
Java EE 7 2013-6-12
HUJAK
2011-12-13
2011-7-28
Java EE 6 2009-12-10
Java SE 6 Mustang
2006-12-11
Java EE 5 2006-5-11
Java 5 J2SE 5.0
Tiger
2004-9-30
J2EE 1.4 2003-11-11
Java 1.4 J2SE 1.4
Merlin
2002-2-6
J2EE 1.3 2001-9-24
Java 1.3 J2SE 1.3 Kestrel
2000-5-8
J2EE 1.2 1999-12-12
Java 1.2 J2SE 1.2
Playground
1998-12-8
JPE Java
Professional Edition
1998-5
Java 1.1 JDK 1.1
1997-2-19
Java 1 JDK 1.0
Oak
1996-1-23
Java JDK
Alpha/Beta
1995 © 2014, HUJAK
2010-1-27
Java SE 9 Java SE 7
Dolphin Java SE 8
Spider
Java EE 8 2016
Java 2012
Javantura
Javantura v2
The Road to Java
• History
• Present
• Future
www.hujak.hr 4
Where are we now?
Some facts for 2014
• Java SE
• JDK 8 launched
• JDK 9 under construction
• ...
• Java EE
• over 15 compatible app servers
• JSR 366 approved
• ...
• Java Embedded
• Java ME 8 release
• ports for SoCs
• …
• Community
• OpenJDK Java SE 8 RI released
• Java SE 9 project created
• 314 JUGs (37% more)
• conferences
• …
www.hujak.hr 5
Java outreach 2014 in numbers
• Java 8 Roadshow – 20 countries, 5000+ JUG members, 140.000 on-demand views
• NightHacking Tour – 40 visits, 7000+ developers, 150.000 on-demand views
• Java Evangelism – 75+ events, 25+ Hands on Labs, participating over 1 conference per week
www.hujak.hr 6
What's in Java 8?
• Lambdas – modernizing Java Language, biggest upgrade ever to the Java programming model
www.hujak.hr 7
Java EE
• We already know Java EE 7 well
• Productivity – Annotated POJOs, less boilerplate code, integrated, tools ecosystem ..
• Scalability – multithreaded, asynchronous APIs (Servlet, EJB, JAX-RS), concurrency utilities …
• HTML5-readyness – JSON, WebSockets, JAX-RS …
• Enterprise demands – Java Message Service, Batch processing, distributed transactions …
• Community Driven Industry Standard
• But what we really use??? www.hujak.hr 8
Tools in development
www.hujak.hr 9
0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
Profiler
Code Quality Analysis
Continuous Integration
Debugger
Issue Tracker
Version Control
IDE
37%
45%
68%
71%
79%
91%
97%
• Which tools we really use and how much?
Source: Developer Productivity Report 2013, ZeroTurnaround, 2013.
IDEs
www.hujak.hr
0% 10% 20% 30% 40% 50%
Other
STS
NetBeans
IntelliJ IDEA
Eclipse
5%
4%
10%
33%
48%
10
• Which IDE do we use most?
Source: Java Tools & Technologies 2014, Rebellabs, ZeroTurnaround, May 2014
Tools in details code analysis, CI, build, VCS
www.hujak.hr
CVS
Mercurial
Subversion
GIT
8%
9%
57%
69%
TeamCity
Hudson
Bamboo
Jenkins
8%
8%
9%
70%
11
Other
Gradle
Ant (+Ivy)
Maven
5%
11%
17%
64%
PMD
Checkstyle
Findbugs
SonarQube
33%
45%
55%
56%
Source: Java Tools & Technologies 2014, Rebellabs, ZeroTurnaround, May 2014
Application servers
• Which app servers we use?
www.hujak.hr 12 0% 10% 20% 30% 40% 50% 60% 70%
WebSphere
WebLogic
GlassFish
JBoss / WildFly
Jetty
Tomcat
9%
11%
13%
25%
49%
68%
6%
8%
10%
20%
38%
53%
4%
6%
7,50%
16%
12%
50%
Rebelabs, May
Typesafe, Oct
Typesafe, Feb
Source: Java 8 Survey, Typesafe, February 2014 & Java Tools & Technologies 2014, Rebellabs, ZeroTurnaround, May 2014
Software Stacks Market Share: August 2014, Jelastic.com
0% 20% 40% 60% 80%
Tomcat 7
Tomcat 6
GlassFish
Jetty
TomEE
86%
6%
4%
3%
1%
Jelastic
JVM & JDK
• Which JVM vendor? • Which JDK(s)?
www.hujak.hr 13 Source: Java 8 Survey, Typesafe, February 2014
0% 50% 100%
Oracle
Dalvik
IBM
Other
Azul
96%
20%
7%
2%
1%
0% 50% 100%
Oracle Java SDK
OpenJDK
IBM JDK
88%
36%
5%
What we use mostly?
www.hujak.hr 14
Java SE 7
65%
SE version
Source: Java Tools & Technologies 2014, Rebellabs, ZeroTurnaround, May 2014
Java EE 6
49%
EE version
Eclipse
48%
IDE
Hibernate
67%
ORM
Tomcat
50%
App server
Spring MVC
40%
Web fw
Jenkins
70%
CI
Git
69%
VCS
FindBugs
55%
CA
Maven
64%
Build
MySQL
65%
SQL DB
MongoDB
56%
NoSQL DB
Java 6 26%
Java 7 69%
Java 8 3%
Other 2%
Present & future
• Which Java platform are you using (Typesafe, Oct 2014)?
• Which Java platform are you using (Rebelabs, May 2014)?
www.hujak.hr 15 Source: Java 8 Survey, Typesafe, October 2014 & Java Tools & Technologies 2014, Rebellabs, ZeroTurnaround, May 2014
Java 5 2%
Java 6 26%
Java 7 65%
Java 8 7%
68% is using
Java SE + Java EE!
J2EE 5% Java EE 5
11%
Java EE 6 49%
Java EE 7 35%
Present & future #2
• Which Java EE platform are you using?
• If you are using Java 6 what is your plan?
www.hujak.hr 16 Source: Java Tools & Technologies 2014, Rebellabs, ZeroTurnaround, May 2014 & Java 8 Survey, Typesafe, February 2014
Java 6 23%
Java 7 41%
Java 8 33%
Java 9 3%
Java 8 – when & how?
• If you plan to upgrade to Java 8 – when?
• How do you now use Java 8?
www.hujak.hr 17
0-6 mo. 29%
6-12 mo. 25%
12+ mo. 13%
Not yet 33%
On Java 8 27%
0-6 mo. 21%
6-12 mo. 15%
12+ mo. 10%
Not yet 26%
Pilot/ testing
40%
Staging/ planning produ-ction 36%
In produ-ction 21%
Other 3%
Source: Java 8 Survey, Typesafe, February & October 2014
Feb 2014
Oct 2014
How to learn Java 8?
• New Java 8 MOOC course coming in 2015
• Books?
www.hujak.hr 18
Java 8 – features
• Which features do you find most interesting?
www.hujak.hr 19 0% 10% 20% 30% 40% 50% 60% 70% 80% 90%
Other
JDBC 4.2
Enhance javac to Improve Build Speed
Nashorn JavaScript Engine
Remove the Permanent Generation
Date & Time API
Concurency Updates
Bulk Data Operation for Collections
Enhance Core Libraries with Lambda
Lambda Expressions & Virtual Extension Methods
2%
2%
8%
9%
10%
15%
16%
17%
30%
83%
Source: Java 8 Survey, Typesafe, February 2014
Java 8 – Lambdas?
• Do you use Lambdas? • Opinion after use of Lambdas?
www.hujak.hr 20
Using Lambdas
45%
Exploring Lambdas
51%
What are Lambdas?
4%
More interested
68%
Less interested
9%
No opinion / not using
23%
Source: Java 8 Survey, Typesafe, February & October 2014
Functional Programming & Scala
• Interested in Functional Programming?
• Impact of Lambdas on Scala adoption?
www.hujak.hr 21
Using FP 47%
Exploring FP 49%
What is FP? 4%
Positive 60%
Negative 22%
No opinion
16%
What are Lambdas
? 2%
Source: Java 8 Survey, Typesafe, February & October 2014
Java Embedded
• 500.000 downloads
• 20+ platforms ports
• PowerPC, Intel x86, MIPS, ARM, Freescale, Qualcomm …
• Industry Wide Collaboration
• Java Embedded MOOC
• Java SE Embedded 8 • Compact profiles,
performance, optimized, rich graphics
• 8u6 – smaller footprint, performance …
• Java ME Embedded 8 • ME->SE alignment, 128+
KB RAM, connectivity, security, tooling
• 8.1 EA – ARM, Arduino, Gobi, Raspberry Pi support
www.hujak.hr 22
Mobile Innovation
• Java Card • 3B Java Cards deployed / year, SIM, security, NFC …
• RoboVM • Native iOS apps in Java, open source
• Oracle Mobile Application Framework • Cross platform mobile application development, simple
extensible UI, Business Logic in Java
• Java for Trusted Execution Environments • Security services in processors (smartphone), mobile
apps and IoT security
www.hujak.hr 23
IoT Demo Car @JavaOne
www.hujak.hr 24
Duke Delorean
www.hujak.hr 25
The Road to Java
• History
• Present
• Future
www.hujak.hr 26
Java roadmap
www.hujak.hr 27
1995 1998 2001 2004 2007 2010 2013 2016 2019
Java SE 12
2021
Java SE 11
2019/20
Java SE 10
2017/18 2016 2014-3-18
Java EE 7 2013-6-12
HUJAK 2011-12-13
2011-7-28
Java EE 6 2009-12-10
Java SE 6 Mustang
2006-12-11
Java EE 5 2006-5-11
Java 5 J2SE 5.0
Tiger
2004-9-30
J2EE 1.4 2003-11-11
Java 1.4 J2SE 1.4
Merlin
2002-2-6
J2EE 1.3 2001-9-24
Java 1.3 J2SE 1.3 Kestrel
2000-5-8
J2EE 1.2 1999-12-12
Java 1.2 J2SE 1.2
Playground
1998-12-8
JPE Java
Professional Edition
1998-5
Java 1.1 JDK 1.1
1997-2-19
Java 1 JDK 1.0
Oak
1996-1-23
Java JDK
Alpha/Beta
1995 © 2014, HUJAK
2010-1-27
Java SE 8u40 2015-03
Perfomance Improvements Density & Resource Management
Multi-Language Support Impr. Accessibility Enhancements Java SE Advanced Features
Java SE 8u60 2015-Q3
Java EE 8 GA 2016
JSON Binding, JAX-RS 2.1, JMS 2.1, Servlet 4.0, MVC 1.0, JSF 2.3, JSON-P 1.1
Security 1.0, Management 2.0,
Java SE 9 Java SE 7
Dolphin Java SE 8
Spider
Java EE 8 2016
Java EE 8 start 2014-9-22
JSR 366 begins …
Java SE 9 2016
Modularity (Jigsaw) HTTP 2.0
Lighweight JSON Cloud Optimized JVM
Java SE Advanced Features Cont'd Ahead of Time Compilation
Java 9 – interest & features
• Interest in Java 9? • Which Java 9 features?
www.hujak.hr 28
Zero 8%
Mild 32%
Average 32%
Strong 28%
Source: Java 8 Survey, Typesafe, October & October 2014
0% 10% 20% 30% 40% 50%
Nothing
Other
Declaration-Site Variance
Specialization
ClassDynamic
Project Jigsaw
Value Types
23%
5%
16%
18%
19%
43%
48%
What do we want in Java EE 8?
• Which API (JSR) should be included in Java EE 8?
www.hujak.hr 29 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
State Management API
Data Grid API
Identity API
Java EE Configuration
JCache
Java API for JSON Binding
37%
42%
47%
64%
68%
79%
51%
44%
43%
29%
26%
16%
12%
14%
10%
7%
6%
5%
YES NOT SURE NO
Source: Java EE 8 Community Survey, Oracle, 2014
Java EE 8 features
• Which features should be on Java EE 8?
www.hujak.hr 30 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
Facelets as standard template engine
JavaScript API on the server (Avatar)
Templating framework
Client API fo Thin Server Architecture
MVC support (alongside JSF)
Java API for Server-sent events
37%
42%
44%
52%
61%
76%
35%
27%
25%
31%
20%
17%
28%
31%
31%
17%
19%
7%
YES NOT SURE NO
Source: Java EE 8 Community Survey, Oracle, 2014
The Road to Java EE 8
• Unanimously approved
www.hujak.hr 31
What are we now really interested in?
• Which other JVM language would be most interesting to learn?
• Scala 47%
• What IDE would you rather use?
• IntelliJ IDEA Ultimate 49%
• What build tool would you like to learn?
• Gradle 58%
• What is your highest priority until 2015?
• Getting familiar with Java 8 35% www.hujak.hr 32 Source: Java Tools & Technologies 2014, Rebellabs, ZeroTurnaround, May 2014
Other JVM languages
• How about other JVM languages?
www.hujak.hr 33
0% 10% 20% 30% 40% 50%
All others
Clojure
Groovy
Scala
10%
12%
31%
47%
Including: Kotlin, Ceylon, Xtend …
Source: Java Tools & Technologies 2014, Rebellabs, ZeroTurnaround, May 2014
The Road to Java
• History
• Present
• Future
• Something nice for the end
www.hujak.hr 34
The Kids
www.hujak.hr 35
Kids Day at JavaOne
www.hujak.hr 36
Questions?
www.hujak.hr 37