SlideShare une entreprise Scribd logo
1  sur  80
Télécharger pour lire hors ligne
with
dr. sc. Branko Mihaljević
Aleksander Radovan
et al.
HUJAK
Hrvatska udruga Java korisnika
Croatian Java User Association
www.hujak.hr
Some Credit to Original Indy
• Dr. Henry Walton Jones Jr.
• "Indiana" or "Indy"
• 2nd greatest film hero of all time
by American Film Institute
• George Lucas and Steven Spielberg
• No superpowers,
real character with many flaws
• Duality in character – Henry vs. Indy
• College Professor, Archaeologist, Historian
vs. Adventurer, Detective, Treasure Hunter
www.hujak.hr 2
CroDuke Indy
• Indy served as an inspiration for CroDuke Indy
• Version of HUJAK's mascot developed for
Javantura (Java-adventure) conference in 2014
• No bullwhip, but with fedora hat
and a cup of Java
• Still a bit clumsy,
making mistakes,
getting hurt and with a
fear of snakes bugs
www.hujak.hr 3
Evolution of Java Man
• Indy will help us to dig out some Java history
• Let's find out more about…
Java Man
www.hujak.hr 4
Source: Photo Credit: © Picture Network International/Braldt Bralds 1995
• Original Java Man lived 1 000 000 years ago on
the island of Java
• In 1891 Eugène Dubois and his excavation team
discovered early human fossils (missing link?)
• BTW, official name is homo erectus erectus
• They uncovered skullcap,
thighbone and tooth (Duke?!)
• However, that's ancient history… ☺
Original Java Man
www.hujak.hr 5
Source: "Java man" Photo, Encyclopædia Britannica Online
New Java Men
• 100 years later the new Java Men discovered ☺
• In 1991 began Stealth Project with
James Gosling to build Oak interpreter
• Green Team on brainstorming in Aspen
• In 1994 first Java compiler was written in Java
• And HotJava graphical browser
• In 1995 Oak was officially renamed Java
• And publicly announced at SunWorld'95 conference
www.hujak.hr 6
Java History Timeline
• And the new part of (Java) history began… ☺
• In the meantime HUJAK (co-)organized 15 conferences
• 5x JavaCro, 4x Javantura, 3x Java Days @HrOUG, 2x WebCamp
www.hujak.hr 7
1995 1998 2001 2004 2007 2010 2013 2016 2019
Java SE 10
201920172014-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
© 2016, HUJAK
2010-1-27
Java SE 9
Java SE 7
Dolphin
Java SE 8
Spider
Java EE 8
2017/8
Java publicly
announced
1995-3-23
Could also take a look at oracle.com.edgesuite.net/timeline/java/
A (Java) History Lesson
• Short history of The Duke, the Java mascot
• First used on 5" color touchscreen LCD device
• With fast SPARC processor,
flash RAM & small Unix (<1MB)
• Wireless networking, multimedia codecs,
remote control (TV)…
• Star 7 (*7)
• PDA handheld device from 1992 ☺
• It was running on screen agent
called The Duke
www.hujak.hr 8
Source: Star7 PDA prototype, http://www.youtube.com/watch?v=Ahg8OBYixL0, 1992
• Hmm, close… but
• Have you
ever heard
about the
Java Ring?
☺
One Ring to Rule Them All
www.hujak.hr 9
Original iButton
• 20 year ago Dallas Seminconductors (today Maxim)
produced iButton
• A one-million transistor single-chip
trusted microcomputer with memory
• Modular exponentiator for RSA encryption,
128 kB RAM, and unalterable realtime clock
• Only a single electrical contact and a ground return
• Specification of 1-Wire bus
• Lithium-backed non-volatile static RAM with
tamper resistance
• When tempering detected near-instantaneous clearing of
all memory (rapid zeroization)
www.hujak.hr 10
Source: An introduction to the Java Ring, JavaWorld, April 1st 1998
Java-powered iButton
• A bit later they produced Java-powered iButton
• JVM housed in 16mm rugged and secure stainless-
steel case
• Fully compatible with Java Card 2.0 standard
• Small and extremely rugged packaging
• Allows it to attach to any accessory (i.e. key fob,
wallet, watch, necklace, bracelet, or finger ring)
• And we've got Java Ring ☺
www.hujak.hr 11
Source: An introduction to the Java Ring, JavaWorld, April 1st 1998
Temple of Java Boom
• Continued growth of Java
for 22 years
• #1 Development Platform
• Now in the Cloud and
with Microservices
• 15 Billion Devices run Java
• 350 Million Medical Devices
• 2 Billion Automotive Devices
• 97% of Enterprise Desktops
www.hujak.hr 12
Source: Oracle presentations, October 2016
Java Developers
• 10 Million Java Developers
in the world
• Many have Java Certificates
• OCA, OCP & OCM
for Java SE
• OCE & OCM
for Java EE
• HUJAK can help with certification process
• Experience, guidelines, books, tests, study groups…
www.hujak.hr 13
Source: Oracle presentations, October 2016
Your Name ☺
Why Java?
• From the largest enterprise applications to
various small smart devices
• Sensors, wearable, pervasive, ubiquitous … IoT
• Enormous ecosystem of code, libraries and tools
• Portable and open source
• Corporate and vendor backing
• And finally – Android!
www.hujak.hr 14
Really, Java?!
Java is not just a language,
Java is a platform!
Most people talk about Java the Language, and this
may sound odd coming from me, but I could hardly
care less.
At the core of Java ecosystem is the JVM.
James Gosling, "Father of Java"
• 50+ JVM languages (Clojure, Groovy, Scala, JRuby,
Jython, Fantom, Kotlin, Ceylon, Xtend, X10, LuaJ,
Golo, Frege, Mirah, Eta… and JavaScript)
• The most popular language (still ☺)?
www.hujak.hr 15
Popularity of Java language
• PYPL index (PopularitY of Programming Language)
• February 2017
www.hujak.hr 16
Rank Language Share
A year
ago
1 Java 22.8 % -1.1%
2 Python 14.8 % +2.9 %
3 PHP 9.5 % -1.1 %
4 C# 8.4 % -0.2 %
5 JavaScript 7.8 % +0.5 %
6 C 7.1 % -0.2 %
7 C++ 7.0 % -0.5 %
8 Objective-C 4.2 % -0.6 %
9 R 3.4 % +0.4 %
10 Swift 2.9 % +0.1 %
Source: PYPL PopularitY of Programming Language, pypl.github.io, February 2017, © Pierre Carbonnelle
Java Popularity in Europe
• PYPL for UK and Germany
• February 2017
www.hujak.hr 17
Source: PYPL PopularitY of Programming Language, pypl.github.io, February 2017, © Pierre Carbonnelle
Popularity of Java language #2
• TIOBE Programming Community Index
• February 2017
www.hujak.hr 18
Rank Language Ratings
1 Java 16.676%
2 C 8.445%
3 C++ 5.429%
4 C# 4.902%
5 Python 4.043%
Source: Tiobe index, www.tiobe.com/tiobe-index/, February 2017
Popularity of JVM Languages
• JVM Language Ranking from StackOverkill
www.hujak.hr 19
Source: JVM Language Ranking, www.stackoverkill.com/ranking/jvm-langs, StackOverkill, February 2017
One Source We All Trust
• 13 million questions and
21 million answers
• Since 2009
• New question
every 8 seconds
• Developer Survey 2016
• 56 033 survey respondents
from 173 countries
www.hujak.hr 20
Source: Developer Survey Results 2016, tackoverflow.com/research/developer-survey-2016, stackoverflow, 2016
Most Popular Technologies
• Most Popular Technologies for 2016
www.hujak.hr 21
0% 20% 40% 60%
C
C++
Python
PHP
C#
Java
SQL
JavaScript
15,5%
19,4%
24,9%
25,9%
30,9%
36,3%
49,1%
55,4%
Source: Developer Survey Results 2016, tackoverflow.com/research/developer-survey-2016, stackoverflow, 2016
Most Popular Technologies #2
• Mobile Developers
www.hujak.hr 22
• Back-End Developers
0% 20% 40%
C#
PHP
Java
SQL
JavaScript
26,8%
31,5%
41,6%
53,3%
54,5%
0% 20% 40% 60%
Swift
Objective-C
iOS
Java
Android
31,7%
39,2%
47,5%
54,2%
61,9%
Source: Developer Survey Results 2016, tackoverflow.com/research/developer-survey-2016, stackoverflow, 2016
Votes for tag "Java"
0
10.000
20.000
30.000
40.000
50.000
60.000
70.000
www.hujak.hr 23
Anonymous Feedback +
Votes over time on a Specific Tag "Java"
Source: Anonymous feedback votes over time on a specific tag, data.stackexchange.com, February 2017
Java at GitHub/Stack Overflow
www.hujak.hr 24
1. JavaScript
2. Java
3. PHP
4. Python
5. C#, C++, Ruby
8. CSS
9. C
10. Objective-C
11. Shell
12. R
13. Perl
14. Scala
15. Go
16. Haskell
Source: The RedMonk Programming Language Rankings, RedMonk, June 2016, redmonk.com/sogrady/2016/07/20/language-rankings-6-16/
Raiders of the Java Ark
• What about:
• Java Versions
• Libraries
• Tools
www.hujak.hr 25
Java Versions
• Java SE version adoption survey (2012-2016)
www.hujak.hr 26
0% 20% 40% 60%
Other
Java 6
Java 7
Java 8
26%
58%
15%
2%
26%
65%
7%
1%
9%
28%
62%
2016 2014 2012
Source: Java Tools and Technologies Landscape 2016, RebelLabs, Simon Maple, ZeroTurnaround, April 2016
Java Versions #2
• Java SE versions analysis (2013-2016)
www.hujak.hr 27
0% 20% 40% 60%
Other
Java 6
Java 7
Java 8
1%
70%
29%
1%
36%
61%
3%
0%
20%
59%
21%
0%
10%
45%
45%
2016 2015 2014 2013
Source: Java version and vendor data analyzed: 2016 edition, Nikita Salnikov-Tarnovski, Plumbr, April 2016
Java Versions #3
• Java SE version adoption survey (2015-2016)
www.hujak.hr 28
0% 20% 40% 60%
Java 6
Java 7
Java 8
13%
49%
38%
6%
30%
64%
2016 2015
Source: Java 8, Spring 4 and Spring Boot Adoption & Java 8 Adoption Survey, Eugen Paraschiv, Baeldung, October 2015 & July 2016
Guide to Modern Java
www.hujak.hr 29
• Java 8 far more likely to be adopted for new
applications than into existing applications
• 81% new applications vs 34% existing applications
• New Java 8 programming style
• Lambdas, Stream API and Optional return type
• java.time API
• Other languages
0%
10%
20%
30%
40%
50%
Groovy Scala Clojure Kotlin
39%
31%
6%
2%
45%
41%
13% 12%
2015 2016
Source: DZone Guide to Modern Java, Volume II, DZone, 2016, dzone.com/guides/modern-java
Java EE Versions
• Java EE version adoption
www.hujak.hr 30
0% 20% 40%
No Java EE
J2EE
Java EE 5
Java EE 6
Java EE 7
32%
3%
7%
33%
24%
42%
3%
7%
17%
31%
2016 2014
Source: Java Tools and Technologies Landscape 2016, RebelLabs, Simon Maple, ZeroTurnaround, April 2016
What is Really Popular?
• Types of Java libraries in Top 100 list on Github
www.hujak.hr 31
Source: The Top 100 Java Libraries in 2016 - After Analyzing 47,251 Dependencies, Henn Idan, Takipi, May 10, 2016
0 2 4 6 8 10 12 14 16
AOP
Java Extension
Mocks
Testing
Logging
Parsing
Database
Web
Utilities
0% 10% 20% 30% 40% 50% 60%
commons-logging
spring-webvmc
jcl-over-slf4j
testng
google-gson
joda-time
spring-test
commons-codec
mockito-core
jackson-databind
spring-context
apache-httpclient
servlet-api
commons-lang3
logback-classic
commons-lang
mockito-all
slf4j-log4j12
commons-io
log4j
guava
slf4j-api
junit
5,93%
5,96%
5,98%
6,06%
6,37%
6,42%
6,71%
6,73%
6,73%
7,17%
7,51%
7,64%
8,36%
8,47%
8,86%
9,55%
10,20%
12,40%
13,90%
15,92%
16,83%
23,17%
62,45%
Top Java libs on Github
www.hujak.hr 32
Source: The Top 100 Java Libraries in 2016 - After Analyzing 47,251 Dependencies, Henn Idan, Takipi, May 10, 2016
Top Java libs on Github
• Testing libraries –#1 is JUnit,
spring-test at #17 and testng at #20
• Logging libraries – SLF4J at #2, log4j at #4,,
and logback-classic at #9
• slf4j-log4j12 at #6 and jcl-over-slf4j at #22
• Google Guava at #3
• Spring libraries – 44 out of top 100
• Spring Boot rise
• Apache-commons – commons-io at #5, commons-lang at
#8, commons-lang3 at #10, commons-codec at #15
• Mockito-all at #7
• JSON libraries – jackson-databind at #14, gson at #19
www.hujak.hr 33
Source: The Top 100 Java Libraries in 2016 - After Analyzing 47,251 Dependencies, Henn Idan, Takipi, May 10, 2016
IDEs
• The most popular IDEs
www.hujak.hr 34
0% 20% 40% 60%
Other
NetBeans
Eclipse
IntelliJ IDEA
14%
62%
24%
3%
10%
54%
33%
3%
10%
41%
46%
2016 2014 2012*
Source: Java Tools and Technologies Landscape 2016, RebelLabs, Simon Maple, ZeroTurnaround, April 2016
* data normalized
Build Tools
• Build Tools
www.hujak.hr 35
0% 20% 40% 60%
Other
Ant
Gradle
Maven
39%
4%
54%
8%
17%
11%
64%
5%
11%
16%
68%
2016 2014 2012*
Source: Java Tools and Technologies Landscape 2016, RebelLabs, Simon Maple, ZeroTurnaround, April 2016
* data normalized
Profiling & Performance
• Performance Monitoring
www.hujak.hr 36
• Java Profilers
0% 10% 20% 30% 40%
No profiler
Other
XRebel
NetBeans Profiler
YourKit
Java Mission Control
JProfiler
VisualVM
35%
3%
6%
7%
12%
15%
16%
38%
0% 10% 20% 30% 40% 50%
No APM
I have no clue
Other
Zipkin
Wili
Dynatrace
AppDynamics
New Relic
47%
30%
5%
2%
2%
4%
5%
11%
Source: Java Tools and Technologies Landscape 2016, RebelLabs, Simon Maple, ZeroTurnaround, April 2016
Application Servers
• Production and development App Servers
www.hujak.hr 37
0%
10%
20%
30%
40%
42%
12%
10%
7% 6%
3% 4%
1% 1%
4%
10%
42%
8% 9% 8% 8%
5% 4%
1% 1%
4%
10%
Development Production
Source: Java Tools and Technologies Landscape 2016, RebelLabs, Simon Maple, ZeroTurnaround, April 2016
Application Servers
• App Servers on Plumbr (2013-2016)
www.hujak.hr 38
Source: Java EE Containers in Use 2013 – 2016, Plumbr, Nikita Salnikov-tarnovski, May 2016
0%
10%
20%
30%
40%
50%
60%
Tomcat WildFly &
JBoss
Jetty GlassFish WebLogic Other
45%
18%
25%
7%
3% 2%
41%
18%
31%
4% 5%
1%
59%
16%
9%
5%
10%
1%
58%
20%
11%
6%
3% 2%
2013 2014 2015 2016
CIs and VCSs
• Version Control System
www.hujak.hr 39
• Continuous Integration
0% 20% 40% 60%
None
Other
TravisCI
Hudson
TeamCity
Bamboo
Jenkins
16%
4%
2%
3%
6%
9%
60%
0% 20% 40% 60%
Other
CVS
Mercurial
Subversion
Git
4%
2%
3%
23%
68%
Source: Java Tools and Technologies Landscape 2016, RebelLabs, Simon Maple, ZeroTurnaround, April 2016
Web Frameworks
• Web Frameworks
www.hujak.hr 40
Source: Java Tools and Technologies Landscape 2016, RebelLabs, Simon Maple, ZeroTurnaround, April 2016
0%
10%
20%
30%
40%
50%
30%
19%
17%
14%
8% 7% 7% 7%
2% 2%
40%
0%
21%
11% 10%
4%
7%
4%
7%
16%
2% 2%
43%
29%
1%
7% 6%
1%
5% 3% 4%
13%
0% 1%
2012 2014 2016
Java T&T Leaderboard
www.hujak.hr 41
Java 8
68%
Java SE
Java EE 7
31%
Java EE
IntelliJ IDEA
46%
IDE
Tomcat
42%
App server
Spring MVC
43%
Web framework
Jenkins
60%
CI
Git
68%
VCS
Docker
32%
Virtualization
Maven
68%
Build tool
Spring Boot
29%
Framework
Source: Java Tools and Technologies Landscape 2016, RebelLabs, Simon Maple, ZeroTurnaround, April 2016
Kingdom of Java Skills
• Where we are now
• Where are we going?
www.hujak.hr 42
• Java SE 8u121 released January 17 2017
• Next Critical Patch Update is in April 2017
• No more MD5 signed JARs
• Moving to a Plugin-Free Web
• Early Access Release JDK 9 Build 156
• Eclipse NetBeans Support
• www.java9countdown.xyz
Current State of Java
www.hujak.hr 43
JDK 9 – what's in it?
102: Process API Updates
110: HTTP 2 Client
143: Improve Contended Locking
158: Unified JVM Logging
165: Compiler Control
193: Variable Handles
197: Segmented Code Cache
199: Smart Java Compilation, Phase Two
200: The Modular JDK
201: Modular Source Code
211: Elide Deprecation Warnings on Import
Statements
212: Resolve Lint and Doclint Warnings
213: Milling Project Coin
214: Remove GC Combinations Deprecated in JDK 8
215: Tiered Attribution for javac
216: Process Import Statements Correctly
217: Annotations Pipeline 2.0
219: Datagram Transport Layer Security (DTLS)
220: Modular Run-Time Images
221: Simplified Doclet API
222: jshell: The Java Shell (Read-Eval-Print Loop)
223: New Version-String Scheme
224: HTML5 Javadoc
225: Javadoc Search
226: UTF-8 Property Files
227: Unicode 7.0
228: Add More Diagnostic Commands
229: Create PKCS12 Keystores by Default
231: Remove Launch-Time JRE Version Selection
232: Improve Secure Application Performance
233: Generate Run-Time Compiler Tests
Automatically
235: Test Class-File Attributes Generated by javac
236: Parser API for Nashorn
237: Linux/AArch64 Port
238: Multi-Release JAR Files
240: Remove the JVM TI hprof Agent
241: Remove the jhat Tool
243: Java-Level JVM Compiler Interface
244: TLS Application-Layer Protocol Negotiation
Extension
245: Validate JVM Command-Line Flag Arguments
246: Leverage CPU Instructions for GHASH and RSA
247: Compile for Older Platform Versions
248: Make G1 the Default Garbage Collector
249: OCSP Stapling for TLS
250: Store Interned Strings in CDS Archives
www.hujak.hr 44
JDK 9 – what's in it? (cont’d)
251: Multi-Resolution Images
252: Use CLDR Locale Data by Default
253: Prepare JavaFX UI Controls & CSS APIs for
Modularization
254: Compact Strings
255: Merge Selected Xerces 2.11 Updates in JAXP
256: BeanInfo Annotations
257: Update JavaFX/Media to Newer Version of
GStreamer
258: HarfBuzz Font-Layout Engine
259: Stack-Walking API
260: Encapsulate Most Internal APIs
261: Module System
262: TIFF Image I/O
263: HiDPI Graphics on Windows and Linux
264: Platform Logging API and Service
265: Marlin Graphics Renderer
266: More Concurrency Updates
267: Unicode 8.0
268: XML Catalogs
269: Convenience Factory Methods for Collections
270: Reserved Stack Areas for Critical Sections
271: Unified GC Logging
272: Platform-Specific Desktop Features
273: DRBG-Based SecureRandom Implementations
274: Enhanced Method Handles
275: Modular Java Application Packaging
276: Dynamic Linking of Language-Defined Object
Models
277: Enhanced Deprecation
278: Additional Tests for Humongous Objects in G1
279: Improve Test-Failure Troubleshooting
280: Indify String Concatenation
281: HotSpot C++ Unit-Test Framework
282: jlink: The Java Linker
283: Enable GTK 3 on Linux
284: New HotSpot Build System
285: Spin-Wait Hints
287: SHA-3 Hash Algorithms
288: Disable SHA-1 Certificates
289: Deprecate the Applet API
290: Filter Incoming Serialization Data
292: Implement Selected ECMAScript 6 Features in
Nashorn
294: Linux/s390x Port
295: Ahead-of-Time Compilation
297: Unified arm32/arm64 Port
298: Remove Demos and Samples
www.hujak.hr 45
89 JEPs!
Java SE 9 delayed
Proposed schedule change for JDK 9
mark.reinhold at oracle.com mark.reinhold at oracle.com Tue Dec 1 17:08:06 UTC 2015
The key feature of Java 9 is Project Jigsaw [1], which will introduce a standard module system and use that system to
modularize both the Java SE Platform and the JDK. This large project consists of a JSR for the module system plus five JEPs, for
the implementation of the module system and for other changes specific to the JDK. We've made good progress on Jigsaw over
the last eighteen months: We reorganized the source code into modules in August 2014 (JEP 201 [2]), restructured run-time
images to support modules in December 2014 (JEP 220 [3]), began discussions in the JSR 376 EG last February [4], and
published a design overview, draft specification, and EA builds in September [5]. More recently we presented an integrated
series of talks on Jigsaw at JavaOne 2015 and Devoxx BE 2015 [6] which were very well-attended and motivated many
developers to download the EA builds, try them out, and send feedback and suggestions.
In the current JDK 9 schedule [7] the Feature Complete milestone is set for 10 December, less than two weeks from today, but
Jigsaw needs more time. The JSR 376 EG has not yet published an Early Draft Review specification, the volume of interest and
the high quality of the feedback received over the last two months suggests that there will be much more to come, and we
want to ensure that the maintainers of the essential build tools and IDEs have adequate time to design and implement good
support for modular development.
For these reasons I hereby propose a six-month extension of the JDK 9 schedule, moving the Feature Complete (FC) milestone
to 25 May 2016, the General Availability (GA) milestone to 23 March 2017, and adjusting the interim milestones accordingly.
As with previous schedule changes, the intent here is not to open the gates to a flood of new features unrelated to Jigsaw, nor
to permit the scope of existing features to grow without bound. It would be best to use the additional time to stabilize, polish,
and fine-tune the features that we already have rather than add a bunch of new ones. The later FC milestone does apply to all
features, however, so reasonable proposals to target additional JEPs to JDK 9 will be considered so long as they do not add
undue risk to the overall release.
Comments on this proposal from JDK 9 Committers are welcome, as are reasoned objections. If no such objections are raised
by 18:00 UTC next Tuesday, 8 December, or if they're raised and satisfactorily answered, then per the JEP 2.0 process proposal
[8] this will be adopted as the new schedule for JDK 9.
- Mark
www.hujak.hr 46
Source: http://mail.openjdk.java.net/pipermail/jdk9-dev/2015-December/003149.html
Java SE 9 delayed again
Proposed schedule change for JDK 9
mark.reinhold at oracle.com mark.reinhold at oracle.com Tue Sep 13 15:56:40 UTC 2016
Eighty-five JEPs are targeted to JDK 9 [1]. Most of those are done, or very nearly so. We are not, unfortunately, where we need
to be relative to the current schedule.
We've made a lot of progress on Project Jigsaw [2], the key feature of the release, over the last eight months. In March 2016
we published a major update to the proposed design of the module system [3] and merged it into the JDK 9 master forest [4].
Since then many developers have downloaded the EA builds and sent in feedback (thanks!), both on the module system itself
and on its impact upon the rest of the JDK.
Despite this progress, at this point it's clear that Jigsaw needs more time. We recently received critical feedback that
motivated a redesign of the module system's package-export feature [5], without which we'd have failed to achieve one of our
main goals. There are, beyond that, still many open design issues [6], which will take time to work through.
Looking at the release as a whole, the number of open bugs that are new in JDK 9 is quite a bit larger than it was at this point
in JDK 8. The maintainers of many popular projects are now actively testing against the JDK 9 EA builds [7], but we'd like to see
even more in order to be confident that potential issues have been found and reported.
For these reasons I hereby propose a four-month extension of the JDK 9 schedule, moving the General Availability (GA)
milestone to July 2017. I'll make a more detailed proposal for that date and other milestones in the next few weeks, but for
now I suggest we defer the start of the Rampdown process [8] and continue to operate with the previously-adopted Feature
Complete extension-request process [9].
Minor enhancements and even strongly-justified proposals to target new JEPs to JDK 9 will be considered, so long as they do
not add undue risk to the overall release. As before, however, our main focus should be to use this additional time to stabilize,
polish, and fine-tune the features that we already have rather than add a bunch of new ones.
Comments on this proposal from JDK 9 Committers are welcome, as are reasoned objections. If no such objections are raised
by 16:00 UTC next Tuesday, 20 September, or if they're raised and satisfactorily answered, then per the JEP 2.0 process
proposal [a] this will be adopted as the new schedule for JDK 9.
- Mark
www.hujak.hr 47
Proposed schedule change for JDK 9
mark.reinhold at oracle.com mark.reinhold at oracle.com Tue
Oct 11 23:25:58 UTC 2016
Still working through the details. Stay tuned ...
– Mark
Source: http://mail.openjdk.java.net/pipermail/jdk9-dev/2016-September/004887.html
JDK 9 – Feature Complete
JDK 9 is Feature Complete -- now it's time to ramp down
mark.reinhold at oracle.com mark.reinhold at oracle.com Thu Jan 19 22:28:38 UTC 2017
We achieved the Feature Extension Complete milestone [1] in late December. All JEPs and
small enhancements granted extensions [2] have been integrated into the JDK 9 master
forest. Thanks to everyone for all your hard work leading up to this milestone!
We're now in the first phase of the rampdown process, in which we aim to fix the bugs
that need to be fixed and understand why we're not going to fix some bugs that perhaps
ought to be fixed. We'll use the process that I previously proposed [3], which is now also
documented under the JDK 9 Project page [4][5].
The overall feature set is, at this point, frozen. It's highly unlikely that any further JEPs will
be targeted to the release.
Small enhancements to new features will be considered, but the bar is now much higher.
Please request approval for such enhancements via the existing FC-extension process [2].
Low-risk enhancements that add small bits of missing functionality or improve usability
may be approved, especially when justified by developer feedback. Enhancements that add
significant new functionality will require very strong justification. Enhancements to tests or
documentation do not require advance approval.
- Mark
www.hujak.hr 48
Source: http://mail.openjdk.java.net/pipermail/jdk9-dev/2017-January/005505.html
Java SE 9 Schedule
Proposed Schedule for JDK 9
2016-05-26 Feature Complete (ex 2015-12-10)
2016-12-22 Feature Extension Complete
2017-01-05 Rampdown Start (ex 2016-02-25 & 2016-09-01)
2017-02-09 All Tests Run (ex 2016-02-04 & 2016-08-11)
2017-02-16 Zero Bug Bounce (ex 2016-04-21 & 2016-10-20)
2017-03-16 Rampdown Phase 2 (ex 2016-06-16 & 2016-12-01)
2017-07-06 Final Release Candidate (ex 2016-07-21 & 2017-01-26)
2017-07-27 General Availability (ex 2016-09-22 & 2017-03-23)
www.hujak.hr 49
Source: openjdk.java.net/projects/jdk9/, February 2017
Java 9 and Beyond
• Project Jigsaw
• Java Module System
• Project Valhalla
• Value Types, Specialized
Generics, Var Handles…
• Project Panama
• Foreign Function Interface, Data Layout Control,
Arrays 2.0…
• Let's first see what will happen with Java 9… ☺
www.hujak.hr 50
Source: Java 9, and Beyond, Mark Reinhold, EclipseCon, March 12, 2015
• Lack of commitment to Java EE
• Members leaving? Low number of code commits?
• Java EE Guardians
• javaee-guardians.io
• Independent group of people interested in moving
Java EE forward (advocacy, awareness, support…)
• And then at JavaOne – (expected) surprise
• Java EE 8 (and 9) Roadmap
• End of 2017?!
What about Java EE?
www.hujak.hr 51
Most wanted tech in Java EE
• Java EE Survey
Results, Oracle,
Dec 2016
1. REST Services
(JAX-RS 2.1)
2. HTTP/2
(Servlet 4.0)
3. OAuth &
OpenID
(Security 1.0)
4. Configuration
www.hujak.hr 52
Source: Java EE Survey Results and Java EE 8, Java EE Development Team, Oracle, December,2016
Current State of Java EE
• Management 2.0 and JMS 2.1 will have to wait
• What about the rest?
www.hujak.hr 53
Source: Java EE 8 - February 2017 update, Daivd Delabassee, www.slideshare.net/delabassee/java-ee-8-february-2017-update
New trends
• Containers and Virtualization
• Official JDK + Docker?
• Others: Kubernetes, Mesos, AWS ECS, VMWare…
• Polyglotism everywhere
• Ability to master multiple languages
• Should we cover JavaScript too?
Andrew Binstock, Editor in Chief, Java Magazine
• Polyglot for Maven (Ruby, Groovy, Clojure, Scala,
YAML…)
www.hujak.hr 54
The Fast IT Crusade
www.hujak.hr 55
Java Licensing Issues
• "Oracle finally targets Java non-payers – six years after
plucking Sun"
• Controversial news article in The Register, Dec 16th, 2016
• Java is still free (from Java SE General FAQs)
• The current version of Java – Java SE 8 – is free and available
for redistribution for general purpose computing. Java SE
continues to be available under the Oracle Binary Code License
(BCL) free of charge.
• However
• JRE use for embedded devices and other computing
environments may require a license fee from Oracle.
• Oracle Java SE Advanced and Oracle Java SE Suite have some
features that are not available in the free version.
www.hujak.hr 56
Source: Java SE General FAQs, www.oracle.com/technetwork/articles/javase/faqs-jsp-136696.html
Java Licensing Resolved
• Which tools are not free?
• Java Flight Recorder, Java Mission Control (JMC), JRockit,
Advance Management Console (AMC) and JRE Usage
Tracking
• General rule – don't use
-XX:+UnlockCommercialFeatures
• Be careful with Oracle Java SE Advanced, Oracle
Java SE Advanced Desktop i Oracle Java SE Suite
• Other JDK/JRE distributions (Azul, IBM, Red Hat…)
• E.g. OpenJDK licensed under GPLv2 + CPE
• Read open letter from Java Champions about it
www.hujak.hr 57
Source: Oracle Java SE and Oracle Java Embedded Products, www.oracle.com/technetwork/java/javase/documentation/java-se-product-editions-397069.pdf
Some Java EE issues
• Java EE claimed "obsolete" by Gartner?
• In Market Guide for Application Platforms, Anne Thomas and Aashish
Gupta, Nov 23rd, 2016
• Key finding: Commercial Java Platform, Enterprise Edition (Java EE)
platforms' revenue declined in 2015, indicating a clear shift in the
application platform market. Digital business initiatives require new
features and capabilities in application platforms, and Java EE has failed to
keep pace.
• Recommendation: Develop a strategy to deal with the obsolescence of
Java EE. Retain Java EE servers for existing legacy applications, but use
lighter-weight Java frameworks for digital business application
development projects or evaluate other language platforms.
• Strategic Planning Assumptions: By 2019, fewer than 35% of all new
business applications will be deployed in Java EE application servers.
• Responses:
• Java EE—the Most Lightweight Enterprise Framework?, Yolande Poirier,
Oracle, Dec 2, 2016
www.hujak.hr 58
Positive Examples in Croatia
• Croatian Makers League
• One great example ☺
• Curricular reform
• A lot of involvement, currently stuck 
• Initiatives
• CISEx Fridays
• Mreža Smart Day
• eSkills for Jobs
• Oracle Academy
• Java in high schools initiative
• Many hackathons & competitions
• HUJAK members included ☺
www.hujak.hr 59
The Adventures of Young
CroDuke Indy
• Java User Groups
• Java Community
• HUJAK
• Members
• Conferences
• Partners & Friends
www.hujak.hr 60
350+ JUGs worldwide
www.hujak.hr 61
Java Community
• 460 000 Java User Group members
worldwide
• 192 Java Champions
elected
• 150+ new JCP members
last year
• 1 billion Java downloads
per year
www.hujak.hr 62
New Java Map
• New Java map at mapme.com/java-use-groups
• JUGs
• Java Champions
• Java Events
• Java for Kids
www.hujak.hr 63
typo ☺
100+ JUGs in Europe
www.hujak.hr 64
Hrvatska udruga Java korisnika – HUJAK
Croatian Java User Association is an non-profit association of citizens,
private persons as well as representatives of legal entities, who are in their professional,
scientific or professional work involved in the development or use of technologies related
to the Java language and platform.
170
200
150
220
160
220
300
260
300 300
34
50
12
50
16
46
23
56
27
56
0
20
40
60
80
100
120
140
0
50
100
150
200
250
300
350
Sessions
Attendees
And we are growing ☺
www.hujak.hr 65
JavaCro and Javantura
conferences
Java-related Conferences
in Croatia
www.hujak.hr 66
Conference Location Date Sessions Tracks Attendees Countries
Javantura v4 Zagreb 11.2.2017. 27 3 300 -
HrOUG 2016 Rovinj 18.-22.10.2016. 7 (od 96) 1 (od 9) 450 11
JavaCro'16 Rovinj 18.-20.5.2016. 56 5 260 15
Javantura v3 Zagreb 20.2.2016. 23 - 300 -
JavaCro'15 Rovinj 10.-12.5.2015. 46 5 200 11
Javantura v2 Zagreb 15.11.2014. 16 - 160 -
JavaCro'14 Poreč 11.-13.5.2014. 50 5 220 11
Javantura v1 Zagreb 22.2.2014. 12 - 150 -
WebCamp 2013 Zagreb 26.10.2013. 24 - 600 -
HrOUG 2013 Rovinj 15.-19.10.2013. 11 (od 90) 1 (od 7) 370 12
JavaCro'13 Tuhelj 3.-5.6.2013. 50 5 200 -
HrOUG 2012 Rovinj 16.-20.10.2012. 11 (od 114) 1 (od 7) 370 13
WebCamp 2012 Zagreb 24.11.2012. 24 - -
Java 2012 Tuhelj 29.-30.5.2012. 34 7 170 -
HrOUG 2011 Rovinj 18.-22.10.2011. 12 (od 96) 1 (od 9) 460 11
We (co-)organized 15 conferences !!!
☺
#Javantura #JavaCro #HrOUG #proud
Conferences HUJAK supports
www.hujak.hr 67
Popularity – hujak.hr
• Posts: 741 + Pages: 55
• Total view: 120.000+
• 16.000+ in 2012, 25.000+ in 2013, 28.000+ in 2014,
24.000+ in 2015, 25.000+ in 2016, 2.500+ in 2017 ☺
• Monthly max: 6.663 (Mar 2016)
• Daily max: 1664 (March 30, 2016)
www.hujak.hr 68
45+ company members
www.hujak.hr 69
Partners & Friends
www.hujak.hr 70
New Indiana Jones Movie?
• JavaCro'17
• Giveaways
www.hujak.hr 71
Call to JavaCro’17
• May 10-12, 2017, Rovinj
• 300+ attendees, 50+ sessions, 3+ tracks, 2+ days
• Call for Speakers is open at 2017.JavaCro.hr
www.hujak.hr 72
Legendary T-shirt toss?
• Sorry, no T-shirts but we have some books instead
www.hujak.hr 73
Agilni razvoj softvera
• Roko Roić & Luka Ferlež
• The only book in Croatian
about Scrum, Lean and
Extreme Programming
• Contains the most famous
Agile methodologies
• Special Javantura discount
ask Roko about it ☺
www.hujak.hr 74
Manning books on discount
• Manning offered us 40% discount on all books
• Use code: ctwjavantura
• www.manning.com
• Special thanks to Marko Lukša ☺
www.hujak.hr 75
Kubernetes in Action
• Marko Lukša
• Simple containerized web
application on Kubernetes
cluster running in
Google Container Engine
• How to use Kubernetes to
deploy self-healing scalable
distributed applications as
well as multi-component
applications
• www.manning.com/books/
kubernetes-in-action
www.hujak.hr 76
Spark in Action
• Petar Zečević & Marko
Bonaći
• Theory and skills you need
to effectively handle batch
and streaming data using
Spark
• Fully updated for Spark 2.0
• www.manning.com/books/
spark-in-action
• Could win one at SV Group
promo stand
www.hujak.hr 77
O'Reilly and Packt Free Books
• More than 240 free O'Reilly ebooks
• www.oreilly.com/programming/free/
• One free Packt book every day
• www.packtpub.com/packt/offers/free-learning
www.hujak.hr 78
Instead of Conclusion
Call for Participation!
• HUJAK needs your help in:
• Everyday life of our JUG
• Organizing conferences (speakers and sponsors)
• Organizing meetups and workshops
• Education and certification activities
• Employment-related activities
HUJAK is YOU!
79www.hujak.hr
Thank you & greetings
from HUJAK!
• Web page hujak.hr
• www.hujak.hr
• LinkedIn group HUJAK
• www.linkedin.com/groups?gid=4320174
• Facebook group page HUJAK.hr
• www.facebook.com/HUJAK.hr
• Twitter profile @HUJAK_hr
• twitter.com/HUJAK_hr
www.hujak.hr 80

Contenu connexe

Tendances

Kiss.ts - The Keep It Simple Software Stack for 2017++
Kiss.ts - The Keep It Simple Software Stack for 2017++Kiss.ts - The Keep It Simple Software Stack for 2017++
Kiss.ts - The Keep It Simple Software Stack for 2017++Ethan Ram
 
Сергей Моренец: "Gradle. Write once, build everywhere"
Сергей Моренец: "Gradle. Write once, build everywhere"Сергей Моренец: "Gradle. Write once, build everywhere"
Сергей Моренец: "Gradle. Write once, build everywhere"Provectus
 
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...Demi Ben-Ari
 
Top 10 reasons to migrate to Gradle
Top 10 reasons to migrate to GradleTop 10 reasons to migrate to Gradle
Top 10 reasons to migrate to GradleStrannik_2013
 
Gradle 2.Breaking stereotypes
Gradle 2.Breaking stereotypesGradle 2.Breaking stereotypes
Gradle 2.Breaking stereotypesStrannik_2013
 
Devoxx : being productive with JHipster
Devoxx : being productive with JHipsterDevoxx : being productive with JHipster
Devoxx : being productive with JHipsterJulien Dubois
 
Git.From thorns to the stars
Git.From thorns to the starsGit.From thorns to the stars
Git.From thorns to the starsStrannik_2013
 
Netflix Architecture and Open Source
Netflix Architecture and Open SourceNetflix Architecture and Open Source
Netflix Architecture and Open SourceAll Things Open
 
Gradle 2.Write once, builde everywhere
Gradle 2.Write once, builde everywhereGradle 2.Write once, builde everywhere
Gradle 2.Write once, builde everywhereStrannik_2013
 
Practical Approaches to Cloud Native Security
Practical Approaches to Cloud Native SecurityPractical Approaches to Cloud Native Security
Practical Approaches to Cloud Native SecurityKarthik Gaekwad
 
Devops online training ppt
Devops online training pptDevops online training ppt
Devops online training pptKhalidQureshi31
 
Gradle.Enemy at the gates
Gradle.Enemy at the gatesGradle.Enemy at the gates
Gradle.Enemy at the gatesStrannik_2013
 
MyHeritage - QA Automations in a Continuous Deployment environment
MyHeritage -  QA Automations in a Continuous Deployment environmentMyHeritage -  QA Automations in a Continuous Deployment environment
MyHeritage - QA Automations in a Continuous Deployment environmentMatanGoren
 
MyHeritage - End 2 End testing Infra
MyHeritage - End 2 End testing InfraMyHeritage - End 2 End testing Infra
MyHeritage - End 2 End testing InfraMatanGoren
 
There is something about JavaScript - Choose Forum 2014
There is something about JavaScript - Choose Forum 2014There is something about JavaScript - Choose Forum 2014
There is something about JavaScript - Choose Forum 2014jbandi
 
JavaEE Microservices -the Payara Way
JavaEE Microservices -the Payara WayJavaEE Microservices -the Payara Way
JavaEE Microservices -the Payara WayPayara
 
Evolve 2017 - Vegas - Devops, Docker and Security
Evolve 2017 - Vegas - Devops, Docker and Security Evolve 2017 - Vegas - Devops, Docker and Security
Evolve 2017 - Vegas - Devops, Docker and Security John Willis
 

Tendances (20)

Kiss.ts - The Keep It Simple Software Stack for 2017++
Kiss.ts - The Keep It Simple Software Stack for 2017++Kiss.ts - The Keep It Simple Software Stack for 2017++
Kiss.ts - The Keep It Simple Software Stack for 2017++
 
Сергей Моренец: "Gradle. Write once, build everywhere"
Сергей Моренец: "Gradle. Write once, build everywhere"Сергей Моренец: "Gradle. Write once, build everywhere"
Сергей Моренец: "Gradle. Write once, build everywhere"
 
Vs java (1)
Vs java (1)Vs java (1)
Vs java (1)
 
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...
 
Top 10 reasons to migrate to Gradle
Top 10 reasons to migrate to GradleTop 10 reasons to migrate to Gradle
Top 10 reasons to migrate to Gradle
 
Gradle 2.Breaking stereotypes
Gradle 2.Breaking stereotypesGradle 2.Breaking stereotypes
Gradle 2.Breaking stereotypes
 
Devoxx : being productive with JHipster
Devoxx : being productive with JHipsterDevoxx : being productive with JHipster
Devoxx : being productive with JHipster
 
Git.From thorns to the stars
Git.From thorns to the starsGit.From thorns to the stars
Git.From thorns to the stars
 
Netflix Architecture and Open Source
Netflix Architecture and Open SourceNetflix Architecture and Open Source
Netflix Architecture and Open Source
 
Javantura v4 - JVM++ The GraalVM - Martin Toshev
Javantura v4 - JVM++ The GraalVM - Martin ToshevJavantura v4 - JVM++ The GraalVM - Martin Toshev
Javantura v4 - JVM++ The GraalVM - Martin Toshev
 
Gradle 2.Write once, builde everywhere
Gradle 2.Write once, builde everywhereGradle 2.Write once, builde everywhere
Gradle 2.Write once, builde everywhere
 
Practical Approaches to Cloud Native Security
Practical Approaches to Cloud Native SecurityPractical Approaches to Cloud Native Security
Practical Approaches to Cloud Native Security
 
Devops online training ppt
Devops online training pptDevops online training ppt
Devops online training ppt
 
Gradle.Enemy at the gates
Gradle.Enemy at the gatesGradle.Enemy at the gates
Gradle.Enemy at the gates
 
MyHeritage - QA Automations in a Continuous Deployment environment
MyHeritage -  QA Automations in a Continuous Deployment environmentMyHeritage -  QA Automations in a Continuous Deployment environment
MyHeritage - QA Automations in a Continuous Deployment environment
 
Kube Apps in action
Kube Apps in actionKube Apps in action
Kube Apps in action
 
MyHeritage - End 2 End testing Infra
MyHeritage - End 2 End testing InfraMyHeritage - End 2 End testing Infra
MyHeritage - End 2 End testing Infra
 
There is something about JavaScript - Choose Forum 2014
There is something about JavaScript - Choose Forum 2014There is something about JavaScript - Choose Forum 2014
There is something about JavaScript - Choose Forum 2014
 
JavaEE Microservices -the Payara Way
JavaEE Microservices -the Payara WayJavaEE Microservices -the Payara Way
JavaEE Microservices -the Payara Way
 
Evolve 2017 - Vegas - Devops, Docker and Security
Evolve 2017 - Vegas - Devops, Docker and Security Evolve 2017 - Vegas - Devops, Docker and Security
Evolve 2017 - Vegas - Devops, Docker and Security
 

En vedette

En vedette (20)

Javantura v4 - True RESTful Java Web Services with JSON API and Katharsis - M...
Javantura v4 - True RESTful Java Web Services with JSON API and Katharsis - M...Javantura v4 - True RESTful Java Web Services with JSON API and Katharsis - M...
Javantura v4 - True RESTful Java Web Services with JSON API and Katharsis - M...
 
Javantura v4 - DMN – supplement your BPMN - Željko Šmaguc
Javantura v4 - DMN – supplement your BPMN - Željko ŠmagucJavantura v4 - DMN – supplement your BPMN - Željko Šmaguc
Javantura v4 - DMN – supplement your BPMN - Željko Šmaguc
 
Javantura v4 - FreeMarker in Spring web - Marin Kalapać
Javantura v4 - FreeMarker in Spring web - Marin KalapaćJavantura v4 - FreeMarker in Spring web - Marin Kalapać
Javantura v4 - FreeMarker in Spring web - Marin Kalapać
 
Javantura v4 - Let me tell you a story why Scrum is not for you - Roko Roić
Javantura v4 - Let me tell you a story why Scrum is not for you - Roko RoićJavantura v4 - Let me tell you a story why Scrum is not for you - Roko Roić
Javantura v4 - Let me tell you a story why Scrum is not for you - Roko Roić
 
Javantura v4 - Security architecture of the Java platform - Martin Toshev
Javantura v4 - Security architecture of the Java platform - Martin ToshevJavantura v4 - Security architecture of the Java platform - Martin Toshev
Javantura v4 - Security architecture of the Java platform - Martin Toshev
 
Javantura v4 - Java and lambdas and streams - are they better than for loops ...
Javantura v4 - Java and lambdas and streams - are they better than for loops ...Javantura v4 - Java and lambdas and streams - are they better than for loops ...
Javantura v4 - Java and lambdas and streams - are they better than for loops ...
 
Javantura v4 - (Spring)Boot your application on Red Hat middleware stack - Al...
Javantura v4 - (Spring)Boot your application on Red Hat middleware stack - Al...Javantura v4 - (Spring)Boot your application on Red Hat middleware stack - Al...
Javantura v4 - (Spring)Boot your application on Red Hat middleware stack - Al...
 
Javantura v4 - Cloud-native Architectures and Java - Matjaž B. Jurič
Javantura v4 - Cloud-native Architectures and Java - Matjaž B. JuričJavantura v4 - Cloud-native Architectures and Java - Matjaž B. Jurič
Javantura v4 - Cloud-native Architectures and Java - Matjaž B. Jurič
 
Javantura v4 - Spring Boot and JavaFX - can they play together - Josip Kovaček
Javantura v4 - Spring Boot and JavaFX - can they play together - Josip KovačekJavantura v4 - Spring Boot and JavaFX - can they play together - Josip Kovaček
Javantura v4 - Spring Boot and JavaFX - can they play together - Josip Kovaček
 
Javantura v4 - Java or Scala – Web development with Playframework 2.5.x - Kre...
Javantura v4 - Java or Scala – Web development with Playframework 2.5.x - Kre...Javantura v4 - Java or Scala – Web development with Playframework 2.5.x - Kre...
Javantura v4 - Java or Scala – Web development with Playframework 2.5.x - Kre...
 
Javantura v4 - Keycloak – instant login for your app - Marko Štrukelj
Javantura v4 - Keycloak – instant login for your app - Marko ŠtrukeljJavantura v4 - Keycloak – instant login for your app - Marko Štrukelj
Javantura v4 - Keycloak – instant login for your app - Marko Štrukelj
 
Javantura v4 - Getting started with Apache Spark - Dinko Srkoč
Javantura v4 - Getting started with Apache Spark - Dinko SrkočJavantura v4 - Getting started with Apache Spark - Dinko Srkoč
Javantura v4 - Getting started with Apache Spark - Dinko Srkoč
 
Javantura v4 - KumuluzEE – Microservices with Java - Matjaž B. Jurič & Tilen ...
Javantura v4 - KumuluzEE – Microservices with Java - Matjaž B. Jurič & Tilen ...Javantura v4 - KumuluzEE – Microservices with Java - Matjaž B. Jurič & Tilen ...
Javantura v4 - KumuluzEE – Microservices with Java - Matjaž B. Jurič & Tilen ...
 
Javantura v4 - Self-service app deployment with Kubernetes and OpenShift - Ma...
Javantura v4 - Self-service app deployment with Kubernetes and OpenShift - Ma...Javantura v4 - Self-service app deployment with Kubernetes and OpenShift - Ma...
Javantura v4 - Self-service app deployment with Kubernetes and OpenShift - Ma...
 
Javantura v3 - Real-time BigData ingestion and querying of aggregated data – ...
Javantura v3 - Real-time BigData ingestion and querying of aggregated data – ...Javantura v3 - Real-time BigData ingestion and querying of aggregated data – ...
Javantura v3 - Real-time BigData ingestion and querying of aggregated data – ...
 
Javantura v3 - Just say it – using language to communicate with the computer ...
Javantura v3 - Just say it – using language to communicate with the computer ...Javantura v3 - Just say it – using language to communicate with the computer ...
Javantura v3 - Just say it – using language to communicate with the computer ...
 
Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der ...
Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der ...Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der ...
Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der ...
 
Javantura v3 - ES6 – Future Is Now – Nenad Pečanac
Javantura v3 - ES6 – Future Is Now – Nenad PečanacJavantura v3 - ES6 – Future Is Now – Nenad Pečanac
Javantura v3 - ES6 – Future Is Now – Nenad Pečanac
 
Javantura v3 - Spring Boot under the hood– Nicolas Fränkel
Javantura v3 - Spring Boot under the hood– Nicolas FränkelJavantura v3 - Spring Boot under the hood– Nicolas Fränkel
Javantura v3 - Spring Boot under the hood– Nicolas Fränkel
 
Javantura v3 - What really motivates developers – Ivan Krnić
Javantura v3 - What really motivates developers – Ivan KrnićJavantura v3 - What really motivates developers – Ivan Krnić
Javantura v3 - What really motivates developers – Ivan Krnić
 

Similaire à Javantura v4 - CroDuke Indy and the Kingdom of Java Skills - Branko Mihaljević & Aleksander Radovan

Valencia EMEA Java User Group Summit
Valencia EMEA Java User Group SummitValencia EMEA Java User Group Summit
Valencia EMEA Java User Group SummitHeather VanCura
 
Adopt OpenJDK the past, the present & the future
Adopt OpenJDK  the past, the present & the futureAdopt OpenJDK  the past, the present & the future
Adopt OpenJDK the past, the present & the futureMani Sarkar
 
Join the Java Evolution GIDS Bangalore & Pune
Join the Java Evolution GIDS Bangalore & PuneJoin the Java Evolution GIDS Bangalore & Pune
Join the Java Evolution GIDS Bangalore & PuneHeather VanCura
 
Adopt-a-JSR Program Update
Adopt-a-JSR Program UpdateAdopt-a-JSR Program Update
Adopt-a-JSR Program UpdateHeather VanCura
 
Towards abundance of learning: ARIADNE
Towards abundance of learning: ARIADNETowards abundance of learning: ARIADNE
Towards abundance of learning: ARIADNEErik Duval
 
Join the Java Evolution Columbus Ohio
Join the Java Evolution Columbus OhioJoin the Java Evolution Columbus Ohio
Join the Java Evolution Columbus OhioHeather VanCura
 
Trends and future of java
Trends and future of javaTrends and future of java
Trends and future of javaCsaba Toth
 
Explore the history, versions and features of Java- a report by Pranav Mishra
Explore the history, versions and features of Java- a report by Pranav MishraExplore the history, versions and features of Java- a report by Pranav Mishra
Explore the history, versions and features of Java- a report by Pranav MishraSopra Steria India
 
Join the Java Evolution Portland Oregon
Join the Java Evolution Portland OregonJoin the Java Evolution Portland Oregon
Join the Java Evolution Portland OregonHeather VanCura
 
JavaOne Latin America Participate in Shaping Java's Future
JavaOne Latin America Participate in Shaping Java's Future JavaOne Latin America Participate in Shaping Java's Future
JavaOne Latin America Participate in Shaping Java's Future Heather VanCura
 

Similaire à Javantura v4 - CroDuke Indy and the Kingdom of Java Skills - Branko Mihaljević & Aleksander Radovan (20)

JavaCro'15 - HUJAKing – Expansion of Java Community - Branko Mihaljević, Alek...
JavaCro'15 - HUJAKing – Expansion of Java Community - Branko Mihaljević, Alek...JavaCro'15 - HUJAKing – Expansion of Java Community - Branko Mihaljević, Alek...
JavaCro'15 - HUJAKing – Expansion of Java Community - Branko Mihaljević, Alek...
 
Javantura v2 - The Road to Java - HUJAK & Oracle Croatia - Branko Mihaljević,...
Javantura v2 - The Road to Java - HUJAK & Oracle Croatia - Branko Mihaljević,...Javantura v2 - The Road to Java - HUJAK & Oracle Croatia - Branko Mihaljević,...
Javantura v2 - The Road to Java - HUJAK & Oracle Croatia - Branko Mihaljević,...
 
Javantura v3 - The story of Java & HUJAK
Javantura v3 - The story of Java & HUJAKJavantura v3 - The story of Java & HUJAK
Javantura v3 - The story of Java & HUJAK
 
Above and Beyond JDK 9, 10, 11, 12... - Branko Mihaljević and Martin Žagar on...
Above and Beyond JDK 9, 10, 11, 12... - Branko Mihaljević and Martin Žagar on...Above and Beyond JDK 9, 10, 11, 12... - Branko Mihaljević and Martin Žagar on...
Above and Beyond JDK 9, 10, 11, 12... - Branko Mihaljević and Martin Žagar on...
 
Valencia EMEA Java User Group Summit
Valencia EMEA Java User Group SummitValencia EMEA Java User Group Summit
Valencia EMEA Java User Group Summit
 
Java history 01
Java history 01Java history 01
Java history 01
 
Adopt OpenJDK the past, the present & the future
Adopt OpenJDK  the past, the present & the futureAdopt OpenJDK  the past, the present & the future
Adopt OpenJDK the past, the present & the future
 
Join the Java Evolution GIDS Bangalore & Pune
Join the Java Evolution GIDS Bangalore & PuneJoin the Java Evolution GIDS Bangalore & Pune
Join the Java Evolution GIDS Bangalore & Pune
 
Javantura v2 - Three Years of Happiness - HUJAK - Branko Mihaljević et al
Javantura v2 - Three Years of Happiness - HUJAK - Branko Mihaljević et alJavantura v2 - Three Years of Happiness - HUJAK - Branko Mihaljević et al
Javantura v2 - Three Years of Happiness - HUJAK - Branko Mihaljević et al
 
JavaCro'21 - Java is Here To Stay - HUJAK Keynote
JavaCro'21 - Java is Here To Stay - HUJAK KeynoteJavaCro'21 - Java is Here To Stay - HUJAK Keynote
JavaCro'21 - Java is Here To Stay - HUJAK Keynote
 
JavaCro'19 - The State of Java and Software Development in Croatia - Communit...
JavaCro'19 - The State of Java and Software Development in Croatia - Communit...JavaCro'19 - The State of Java and Software Development in Croatia - Communit...
JavaCro'19 - The State of Java and Software Development in Croatia - Communit...
 
Adopt-a-JSR Program Update
Adopt-a-JSR Program UpdateAdopt-a-JSR Program Update
Adopt-a-JSR Program Update
 
Towards abundance of learning: ARIADNE
Towards abundance of learning: ARIADNETowards abundance of learning: ARIADNE
Towards abundance of learning: ARIADNE
 
Join the Java Evolution Columbus Ohio
Join the Java Evolution Columbus OhioJoin the Java Evolution Columbus Ohio
Join the Java Evolution Columbus Ohio
 
Trends and future of java
Trends and future of javaTrends and future of java
Trends and future of java
 
Javantura v6 - Java in Croatia and HUJAK - Branko Mihaljević, Aleksander Radovan
Javantura v6 - Java in Croatia and HUJAK - Branko Mihaljević, Aleksander RadovanJavantura v6 - Java in Croatia and HUJAK - Branko Mihaljević, Aleksander Radovan
Javantura v6 - Java in Croatia and HUJAK - Branko Mihaljević, Aleksander Radovan
 
Explore the history, versions and features of Java- a report by Pranav Mishra
Explore the history, versions and features of Java- a report by Pranav MishraExplore the history, versions and features of Java- a report by Pranav Mishra
Explore the history, versions and features of Java- a report by Pranav Mishra
 
Join the Java Evolution Portland Oregon
Join the Java Evolution Portland OregonJoin the Java Evolution Portland Oregon
Join the Java Evolution Portland Oregon
 
MWLUG 2016 - AD106
MWLUG 2016 - AD106MWLUG 2016 - AD106
MWLUG 2016 - AD106
 
JavaOne Latin America Participate in Shaping Java's Future
JavaOne Latin America Participate in Shaping Java's Future JavaOne Latin America Participate in Shaping Java's Future
JavaOne Latin America Participate in Shaping Java's Future
 

Plus de HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association

Plus de HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association (20)

Java cro'21 the best tools for java developers in 2021 - hujak
Java cro'21   the best tools for java developers in 2021 - hujakJava cro'21   the best tools for java developers in 2021 - hujak
Java cro'21 the best tools for java developers in 2021 - hujak
 
Javantura v7 - Behaviour Driven Development with Cucumber - Ivan Lozić
Javantura v7 - Behaviour Driven Development with Cucumber - Ivan LozićJavantura v7 - Behaviour Driven Development with Cucumber - Ivan Lozić
Javantura v7 - Behaviour Driven Development with Cucumber - Ivan Lozić
 
Javantura v7 - The State of Java - Today and Tomowwow - HUJAK's Community Key...
Javantura v7 - The State of Java - Today and Tomowwow - HUJAK's Community Key...Javantura v7 - The State of Java - Today and Tomowwow - HUJAK's Community Key...
Javantura v7 - The State of Java - Today and Tomowwow - HUJAK's Community Key...
 
Javantura v7 - Learning to Scale Yourself: The Journey from Coder to Leader -...
Javantura v7 - Learning to Scale Yourself: The Journey from Coder to Leader -...Javantura v7 - Learning to Scale Yourself: The Journey from Coder to Leader -...
Javantura v7 - Learning to Scale Yourself: The Journey from Coder to Leader -...
 
Javantura v6 - On the Aspects of Polyglot Programming and Memory Management i...
Javantura v6 - On the Aspects of Polyglot Programming and Memory Management i...Javantura v6 - On the Aspects of Polyglot Programming and Memory Management i...
Javantura v6 - On the Aspects of Polyglot Programming and Memory Management i...
 
Javantura v6 - Case Study: Marketplace App with Java and Hyperledger Fabric -...
Javantura v6 - Case Study: Marketplace App with Java and Hyperledger Fabric -...Javantura v6 - Case Study: Marketplace App with Java and Hyperledger Fabric -...
Javantura v6 - Case Study: Marketplace App with Java and Hyperledger Fabric -...
 
Javantura v6 - How to help customers report bugs accurately - Miroslav Čerkez...
Javantura v6 - How to help customers report bugs accurately - Miroslav Čerkez...Javantura v6 - How to help customers report bugs accurately - Miroslav Čerkez...
Javantura v6 - How to help customers report bugs accurately - Miroslav Čerkez...
 
Javantura v6 - When remote work really works - the secrets behind successful ...
Javantura v6 - When remote work really works - the secrets behind successful ...Javantura v6 - When remote work really works - the secrets behind successful ...
Javantura v6 - When remote work really works - the secrets behind successful ...
 
Javantura v6 - Kotlin-Java Interop - Matej Vidaković
Javantura v6 - Kotlin-Java Interop - Matej VidakovićJavantura v6 - Kotlin-Java Interop - Matej Vidaković
Javantura v6 - Kotlin-Java Interop - Matej Vidaković
 
Javantura v6 - Spring HATEOAS hypermedia-driven web services, and clients tha...
Javantura v6 - Spring HATEOAS hypermedia-driven web services, and clients tha...Javantura v6 - Spring HATEOAS hypermedia-driven web services, and clients tha...
Javantura v6 - Spring HATEOAS hypermedia-driven web services, and clients tha...
 
Javantura v6 - End to End Continuous Delivery of Microservices for Kubernetes...
Javantura v6 - End to End Continuous Delivery of Microservices for Kubernetes...Javantura v6 - End to End Continuous Delivery of Microservices for Kubernetes...
Javantura v6 - End to End Continuous Delivery of Microservices for Kubernetes...
 
Javantura v6 - Istio Service Mesh - The magic between your microservices - Ma...
Javantura v6 - Istio Service Mesh - The magic between your microservices - Ma...Javantura v6 - Istio Service Mesh - The magic between your microservices - Ma...
Javantura v6 - Istio Service Mesh - The magic between your microservices - Ma...
 
Javantura v6 - How can you improve the quality of your application - Ioannis ...
Javantura v6 - How can you improve the quality of your application - Ioannis ...Javantura v6 - How can you improve the quality of your application - Ioannis ...
Javantura v6 - How can you improve the quality of your application - Ioannis ...
 
Javantura v6 - Just say it v2 - Pavao Varela Petrac
Javantura v6 - Just say it v2 - Pavao Varela PetracJavantura v6 - Just say it v2 - Pavao Varela Petrac
Javantura v6 - Just say it v2 - Pavao Varela Petrac
 
Javantura v6 - Automation of web apps testing - Hrvoje Ruhek
Javantura v6 - Automation of web apps testing - Hrvoje RuhekJavantura v6 - Automation of web apps testing - Hrvoje Ruhek
Javantura v6 - Automation of web apps testing - Hrvoje Ruhek
 
Javantura v6 - Master the Concepts Behind the Java 10 Challenges and Eliminat...
Javantura v6 - Master the Concepts Behind the Java 10 Challenges and Eliminat...Javantura v6 - Master the Concepts Behind the Java 10 Challenges and Eliminat...
Javantura v6 - Master the Concepts Behind the Java 10 Challenges and Eliminat...
 
Javantura v6 - Building IoT Middleware with Microservices - Mario Kusek
Javantura v6 - Building IoT Middleware with Microservices - Mario KusekJavantura v6 - Building IoT Middleware with Microservices - Mario Kusek
Javantura v6 - Building IoT Middleware with Microservices - Mario Kusek
 
Javantura v6 - JDK 11 & JDK 12 - Dalibor Topic
Javantura v6 - JDK 11 & JDK 12 - Dalibor TopicJavantura v6 - JDK 11 & JDK 12 - Dalibor Topic
Javantura v6 - JDK 11 & JDK 12 - Dalibor Topic
 
Javantura v6 - Java SE, Today and Tomorrow - Dalibor Topic
Javantura v6 - Java SE, Today and Tomorrow - Dalibor TopicJavantura v6 - Java SE, Today and Tomorrow - Dalibor Topic
Javantura v6 - Java SE, Today and Tomorrow - Dalibor Topic
 
Javantura v6 - Future of the Humankind and the Universe - Ivica Puljak
Javantura v6 - Future of the Humankind and the Universe - Ivica PuljakJavantura v6 - Future of the Humankind and the Universe - Ivica Puljak
Javantura v6 - Future of the Humankind and the Universe - Ivica Puljak
 

Dernier

Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Adtran
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPathCommunity
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationIES VE
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsSafe Software
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...Aggregage
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfAijun Zhang
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024SkyPlanner
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxMatsuo Lab
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfJamie (Taka) Wang
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaborationbruanjhuli
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesMd Hossain Ali
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemAsko Soukka
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfDianaGray10
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfDaniel Santiago Silva Capera
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URLRuncy Oommen
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7DianaGray10
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureEric D. Schabell
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintMahmoud Rabie
 

Dernier (20)

Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdf
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024
 
201610817 - edge part1
201610817 - edge part1201610817 - edge part1
201610817 - edge part1
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptx
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URL
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability Adventure
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership Blueprint
 

Javantura v4 - CroDuke Indy and the Kingdom of Java Skills - Branko Mihaljević & Aleksander Radovan

  • 1. with dr. sc. Branko Mihaljević Aleksander Radovan et al. HUJAK Hrvatska udruga Java korisnika Croatian Java User Association www.hujak.hr
  • 2. Some Credit to Original Indy • Dr. Henry Walton Jones Jr. • "Indiana" or "Indy" • 2nd greatest film hero of all time by American Film Institute • George Lucas and Steven Spielberg • No superpowers, real character with many flaws • Duality in character – Henry vs. Indy • College Professor, Archaeologist, Historian vs. Adventurer, Detective, Treasure Hunter www.hujak.hr 2
  • 3. CroDuke Indy • Indy served as an inspiration for CroDuke Indy • Version of HUJAK's mascot developed for Javantura (Java-adventure) conference in 2014 • No bullwhip, but with fedora hat and a cup of Java • Still a bit clumsy, making mistakes, getting hurt and with a fear of snakes bugs www.hujak.hr 3
  • 4. Evolution of Java Man • Indy will help us to dig out some Java history • Let's find out more about… Java Man www.hujak.hr 4 Source: Photo Credit: © Picture Network International/Braldt Bralds 1995
  • 5. • Original Java Man lived 1 000 000 years ago on the island of Java • In 1891 Eugène Dubois and his excavation team discovered early human fossils (missing link?) • BTW, official name is homo erectus erectus • They uncovered skullcap, thighbone and tooth (Duke?!) • However, that's ancient history… ☺ Original Java Man www.hujak.hr 5 Source: "Java man" Photo, Encyclopædia Britannica Online
  • 6. New Java Men • 100 years later the new Java Men discovered ☺ • In 1991 began Stealth Project with James Gosling to build Oak interpreter • Green Team on brainstorming in Aspen • In 1994 first Java compiler was written in Java • And HotJava graphical browser • In 1995 Oak was officially renamed Java • And publicly announced at SunWorld'95 conference www.hujak.hr 6
  • 7. Java History Timeline • And the new part of (Java) history began… ☺ • In the meantime HUJAK (co-)organized 15 conferences • 5x JavaCro, 4x Javantura, 3x Java Days @HrOUG, 2x WebCamp www.hujak.hr 7 1995 1998 2001 2004 2007 2010 2013 2016 2019 Java SE 10 201920172014-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 © 2016, HUJAK 2010-1-27 Java SE 9 Java SE 7 Dolphin Java SE 8 Spider Java EE 8 2017/8 Java publicly announced 1995-3-23 Could also take a look at oracle.com.edgesuite.net/timeline/java/
  • 8. A (Java) History Lesson • Short history of The Duke, the Java mascot • First used on 5" color touchscreen LCD device • With fast SPARC processor, flash RAM & small Unix (<1MB) • Wireless networking, multimedia codecs, remote control (TV)… • Star 7 (*7) • PDA handheld device from 1992 ☺ • It was running on screen agent called The Duke www.hujak.hr 8 Source: Star7 PDA prototype, http://www.youtube.com/watch?v=Ahg8OBYixL0, 1992
  • 9. • Hmm, close… but • Have you ever heard about the Java Ring? ☺ One Ring to Rule Them All www.hujak.hr 9
  • 10. Original iButton • 20 year ago Dallas Seminconductors (today Maxim) produced iButton • A one-million transistor single-chip trusted microcomputer with memory • Modular exponentiator for RSA encryption, 128 kB RAM, and unalterable realtime clock • Only a single electrical contact and a ground return • Specification of 1-Wire bus • Lithium-backed non-volatile static RAM with tamper resistance • When tempering detected near-instantaneous clearing of all memory (rapid zeroization) www.hujak.hr 10 Source: An introduction to the Java Ring, JavaWorld, April 1st 1998
  • 11. Java-powered iButton • A bit later they produced Java-powered iButton • JVM housed in 16mm rugged and secure stainless- steel case • Fully compatible with Java Card 2.0 standard • Small and extremely rugged packaging • Allows it to attach to any accessory (i.e. key fob, wallet, watch, necklace, bracelet, or finger ring) • And we've got Java Ring ☺ www.hujak.hr 11 Source: An introduction to the Java Ring, JavaWorld, April 1st 1998
  • 12. Temple of Java Boom • Continued growth of Java for 22 years • #1 Development Platform • Now in the Cloud and with Microservices • 15 Billion Devices run Java • 350 Million Medical Devices • 2 Billion Automotive Devices • 97% of Enterprise Desktops www.hujak.hr 12 Source: Oracle presentations, October 2016
  • 13. Java Developers • 10 Million Java Developers in the world • Many have Java Certificates • OCA, OCP & OCM for Java SE • OCE & OCM for Java EE • HUJAK can help with certification process • Experience, guidelines, books, tests, study groups… www.hujak.hr 13 Source: Oracle presentations, October 2016 Your Name ☺
  • 14. Why Java? • From the largest enterprise applications to various small smart devices • Sensors, wearable, pervasive, ubiquitous … IoT • Enormous ecosystem of code, libraries and tools • Portable and open source • Corporate and vendor backing • And finally – Android! www.hujak.hr 14
  • 15. Really, Java?! Java is not just a language, Java is a platform! Most people talk about Java the Language, and this may sound odd coming from me, but I could hardly care less. At the core of Java ecosystem is the JVM. James Gosling, "Father of Java" • 50+ JVM languages (Clojure, Groovy, Scala, JRuby, Jython, Fantom, Kotlin, Ceylon, Xtend, X10, LuaJ, Golo, Frege, Mirah, Eta… and JavaScript) • The most popular language (still ☺)? www.hujak.hr 15
  • 16. Popularity of Java language • PYPL index (PopularitY of Programming Language) • February 2017 www.hujak.hr 16 Rank Language Share A year ago 1 Java 22.8 % -1.1% 2 Python 14.8 % +2.9 % 3 PHP 9.5 % -1.1 % 4 C# 8.4 % -0.2 % 5 JavaScript 7.8 % +0.5 % 6 C 7.1 % -0.2 % 7 C++ 7.0 % -0.5 % 8 Objective-C 4.2 % -0.6 % 9 R 3.4 % +0.4 % 10 Swift 2.9 % +0.1 % Source: PYPL PopularitY of Programming Language, pypl.github.io, February 2017, © Pierre Carbonnelle
  • 17. Java Popularity in Europe • PYPL for UK and Germany • February 2017 www.hujak.hr 17 Source: PYPL PopularitY of Programming Language, pypl.github.io, February 2017, © Pierre Carbonnelle
  • 18. Popularity of Java language #2 • TIOBE Programming Community Index • February 2017 www.hujak.hr 18 Rank Language Ratings 1 Java 16.676% 2 C 8.445% 3 C++ 5.429% 4 C# 4.902% 5 Python 4.043% Source: Tiobe index, www.tiobe.com/tiobe-index/, February 2017
  • 19. Popularity of JVM Languages • JVM Language Ranking from StackOverkill www.hujak.hr 19 Source: JVM Language Ranking, www.stackoverkill.com/ranking/jvm-langs, StackOverkill, February 2017
  • 20. One Source We All Trust • 13 million questions and 21 million answers • Since 2009 • New question every 8 seconds • Developer Survey 2016 • 56 033 survey respondents from 173 countries www.hujak.hr 20 Source: Developer Survey Results 2016, tackoverflow.com/research/developer-survey-2016, stackoverflow, 2016
  • 21. Most Popular Technologies • Most Popular Technologies for 2016 www.hujak.hr 21 0% 20% 40% 60% C C++ Python PHP C# Java SQL JavaScript 15,5% 19,4% 24,9% 25,9% 30,9% 36,3% 49,1% 55,4% Source: Developer Survey Results 2016, tackoverflow.com/research/developer-survey-2016, stackoverflow, 2016
  • 22. Most Popular Technologies #2 • Mobile Developers www.hujak.hr 22 • Back-End Developers 0% 20% 40% C# PHP Java SQL JavaScript 26,8% 31,5% 41,6% 53,3% 54,5% 0% 20% 40% 60% Swift Objective-C iOS Java Android 31,7% 39,2% 47,5% 54,2% 61,9% Source: Developer Survey Results 2016, tackoverflow.com/research/developer-survey-2016, stackoverflow, 2016
  • 23. Votes for tag "Java" 0 10.000 20.000 30.000 40.000 50.000 60.000 70.000 www.hujak.hr 23 Anonymous Feedback + Votes over time on a Specific Tag "Java" Source: Anonymous feedback votes over time on a specific tag, data.stackexchange.com, February 2017
  • 24. Java at GitHub/Stack Overflow www.hujak.hr 24 1. JavaScript 2. Java 3. PHP 4. Python 5. C#, C++, Ruby 8. CSS 9. C 10. Objective-C 11. Shell 12. R 13. Perl 14. Scala 15. Go 16. Haskell Source: The RedMonk Programming Language Rankings, RedMonk, June 2016, redmonk.com/sogrady/2016/07/20/language-rankings-6-16/
  • 25. Raiders of the Java Ark • What about: • Java Versions • Libraries • Tools www.hujak.hr 25
  • 26. Java Versions • Java SE version adoption survey (2012-2016) www.hujak.hr 26 0% 20% 40% 60% Other Java 6 Java 7 Java 8 26% 58% 15% 2% 26% 65% 7% 1% 9% 28% 62% 2016 2014 2012 Source: Java Tools and Technologies Landscape 2016, RebelLabs, Simon Maple, ZeroTurnaround, April 2016
  • 27. Java Versions #2 • Java SE versions analysis (2013-2016) www.hujak.hr 27 0% 20% 40% 60% Other Java 6 Java 7 Java 8 1% 70% 29% 1% 36% 61% 3% 0% 20% 59% 21% 0% 10% 45% 45% 2016 2015 2014 2013 Source: Java version and vendor data analyzed: 2016 edition, Nikita Salnikov-Tarnovski, Plumbr, April 2016
  • 28. Java Versions #3 • Java SE version adoption survey (2015-2016) www.hujak.hr 28 0% 20% 40% 60% Java 6 Java 7 Java 8 13% 49% 38% 6% 30% 64% 2016 2015 Source: Java 8, Spring 4 and Spring Boot Adoption & Java 8 Adoption Survey, Eugen Paraschiv, Baeldung, October 2015 & July 2016
  • 29. Guide to Modern Java www.hujak.hr 29 • Java 8 far more likely to be adopted for new applications than into existing applications • 81% new applications vs 34% existing applications • New Java 8 programming style • Lambdas, Stream API and Optional return type • java.time API • Other languages 0% 10% 20% 30% 40% 50% Groovy Scala Clojure Kotlin 39% 31% 6% 2% 45% 41% 13% 12% 2015 2016 Source: DZone Guide to Modern Java, Volume II, DZone, 2016, dzone.com/guides/modern-java
  • 30. Java EE Versions • Java EE version adoption www.hujak.hr 30 0% 20% 40% No Java EE J2EE Java EE 5 Java EE 6 Java EE 7 32% 3% 7% 33% 24% 42% 3% 7% 17% 31% 2016 2014 Source: Java Tools and Technologies Landscape 2016, RebelLabs, Simon Maple, ZeroTurnaround, April 2016
  • 31. What is Really Popular? • Types of Java libraries in Top 100 list on Github www.hujak.hr 31 Source: The Top 100 Java Libraries in 2016 - After Analyzing 47,251 Dependencies, Henn Idan, Takipi, May 10, 2016 0 2 4 6 8 10 12 14 16 AOP Java Extension Mocks Testing Logging Parsing Database Web Utilities
  • 32. 0% 10% 20% 30% 40% 50% 60% commons-logging spring-webvmc jcl-over-slf4j testng google-gson joda-time spring-test commons-codec mockito-core jackson-databind spring-context apache-httpclient servlet-api commons-lang3 logback-classic commons-lang mockito-all slf4j-log4j12 commons-io log4j guava slf4j-api junit 5,93% 5,96% 5,98% 6,06% 6,37% 6,42% 6,71% 6,73% 6,73% 7,17% 7,51% 7,64% 8,36% 8,47% 8,86% 9,55% 10,20% 12,40% 13,90% 15,92% 16,83% 23,17% 62,45% Top Java libs on Github www.hujak.hr 32 Source: The Top 100 Java Libraries in 2016 - After Analyzing 47,251 Dependencies, Henn Idan, Takipi, May 10, 2016
  • 33. Top Java libs on Github • Testing libraries –#1 is JUnit, spring-test at #17 and testng at #20 • Logging libraries – SLF4J at #2, log4j at #4,, and logback-classic at #9 • slf4j-log4j12 at #6 and jcl-over-slf4j at #22 • Google Guava at #3 • Spring libraries – 44 out of top 100 • Spring Boot rise • Apache-commons – commons-io at #5, commons-lang at #8, commons-lang3 at #10, commons-codec at #15 • Mockito-all at #7 • JSON libraries – jackson-databind at #14, gson at #19 www.hujak.hr 33 Source: The Top 100 Java Libraries in 2016 - After Analyzing 47,251 Dependencies, Henn Idan, Takipi, May 10, 2016
  • 34. IDEs • The most popular IDEs www.hujak.hr 34 0% 20% 40% 60% Other NetBeans Eclipse IntelliJ IDEA 14% 62% 24% 3% 10% 54% 33% 3% 10% 41% 46% 2016 2014 2012* Source: Java Tools and Technologies Landscape 2016, RebelLabs, Simon Maple, ZeroTurnaround, April 2016 * data normalized
  • 35. Build Tools • Build Tools www.hujak.hr 35 0% 20% 40% 60% Other Ant Gradle Maven 39% 4% 54% 8% 17% 11% 64% 5% 11% 16% 68% 2016 2014 2012* Source: Java Tools and Technologies Landscape 2016, RebelLabs, Simon Maple, ZeroTurnaround, April 2016 * data normalized
  • 36. Profiling & Performance • Performance Monitoring www.hujak.hr 36 • Java Profilers 0% 10% 20% 30% 40% No profiler Other XRebel NetBeans Profiler YourKit Java Mission Control JProfiler VisualVM 35% 3% 6% 7% 12% 15% 16% 38% 0% 10% 20% 30% 40% 50% No APM I have no clue Other Zipkin Wili Dynatrace AppDynamics New Relic 47% 30% 5% 2% 2% 4% 5% 11% Source: Java Tools and Technologies Landscape 2016, RebelLabs, Simon Maple, ZeroTurnaround, April 2016
  • 37. Application Servers • Production and development App Servers www.hujak.hr 37 0% 10% 20% 30% 40% 42% 12% 10% 7% 6% 3% 4% 1% 1% 4% 10% 42% 8% 9% 8% 8% 5% 4% 1% 1% 4% 10% Development Production Source: Java Tools and Technologies Landscape 2016, RebelLabs, Simon Maple, ZeroTurnaround, April 2016
  • 38. Application Servers • App Servers on Plumbr (2013-2016) www.hujak.hr 38 Source: Java EE Containers in Use 2013 – 2016, Plumbr, Nikita Salnikov-tarnovski, May 2016 0% 10% 20% 30% 40% 50% 60% Tomcat WildFly & JBoss Jetty GlassFish WebLogic Other 45% 18% 25% 7% 3% 2% 41% 18% 31% 4% 5% 1% 59% 16% 9% 5% 10% 1% 58% 20% 11% 6% 3% 2% 2013 2014 2015 2016
  • 39. CIs and VCSs • Version Control System www.hujak.hr 39 • Continuous Integration 0% 20% 40% 60% None Other TravisCI Hudson TeamCity Bamboo Jenkins 16% 4% 2% 3% 6% 9% 60% 0% 20% 40% 60% Other CVS Mercurial Subversion Git 4% 2% 3% 23% 68% Source: Java Tools and Technologies Landscape 2016, RebelLabs, Simon Maple, ZeroTurnaround, April 2016
  • 40. Web Frameworks • Web Frameworks www.hujak.hr 40 Source: Java Tools and Technologies Landscape 2016, RebelLabs, Simon Maple, ZeroTurnaround, April 2016 0% 10% 20% 30% 40% 50% 30% 19% 17% 14% 8% 7% 7% 7% 2% 2% 40% 0% 21% 11% 10% 4% 7% 4% 7% 16% 2% 2% 43% 29% 1% 7% 6% 1% 5% 3% 4% 13% 0% 1% 2012 2014 2016
  • 41. Java T&T Leaderboard www.hujak.hr 41 Java 8 68% Java SE Java EE 7 31% Java EE IntelliJ IDEA 46% IDE Tomcat 42% App server Spring MVC 43% Web framework Jenkins 60% CI Git 68% VCS Docker 32% Virtualization Maven 68% Build tool Spring Boot 29% Framework Source: Java Tools and Technologies Landscape 2016, RebelLabs, Simon Maple, ZeroTurnaround, April 2016
  • 42. Kingdom of Java Skills • Where we are now • Where are we going? www.hujak.hr 42
  • 43. • Java SE 8u121 released January 17 2017 • Next Critical Patch Update is in April 2017 • No more MD5 signed JARs • Moving to a Plugin-Free Web • Early Access Release JDK 9 Build 156 • Eclipse NetBeans Support • www.java9countdown.xyz Current State of Java www.hujak.hr 43
  • 44. JDK 9 – what's in it? 102: Process API Updates 110: HTTP 2 Client 143: Improve Contended Locking 158: Unified JVM Logging 165: Compiler Control 193: Variable Handles 197: Segmented Code Cache 199: Smart Java Compilation, Phase Two 200: The Modular JDK 201: Modular Source Code 211: Elide Deprecation Warnings on Import Statements 212: Resolve Lint and Doclint Warnings 213: Milling Project Coin 214: Remove GC Combinations Deprecated in JDK 8 215: Tiered Attribution for javac 216: Process Import Statements Correctly 217: Annotations Pipeline 2.0 219: Datagram Transport Layer Security (DTLS) 220: Modular Run-Time Images 221: Simplified Doclet API 222: jshell: The Java Shell (Read-Eval-Print Loop) 223: New Version-String Scheme 224: HTML5 Javadoc 225: Javadoc Search 226: UTF-8 Property Files 227: Unicode 7.0 228: Add More Diagnostic Commands 229: Create PKCS12 Keystores by Default 231: Remove Launch-Time JRE Version Selection 232: Improve Secure Application Performance 233: Generate Run-Time Compiler Tests Automatically 235: Test Class-File Attributes Generated by javac 236: Parser API for Nashorn 237: Linux/AArch64 Port 238: Multi-Release JAR Files 240: Remove the JVM TI hprof Agent 241: Remove the jhat Tool 243: Java-Level JVM Compiler Interface 244: TLS Application-Layer Protocol Negotiation Extension 245: Validate JVM Command-Line Flag Arguments 246: Leverage CPU Instructions for GHASH and RSA 247: Compile for Older Platform Versions 248: Make G1 the Default Garbage Collector 249: OCSP Stapling for TLS 250: Store Interned Strings in CDS Archives www.hujak.hr 44
  • 45. JDK 9 – what's in it? (cont’d) 251: Multi-Resolution Images 252: Use CLDR Locale Data by Default 253: Prepare JavaFX UI Controls & CSS APIs for Modularization 254: Compact Strings 255: Merge Selected Xerces 2.11 Updates in JAXP 256: BeanInfo Annotations 257: Update JavaFX/Media to Newer Version of GStreamer 258: HarfBuzz Font-Layout Engine 259: Stack-Walking API 260: Encapsulate Most Internal APIs 261: Module System 262: TIFF Image I/O 263: HiDPI Graphics on Windows and Linux 264: Platform Logging API and Service 265: Marlin Graphics Renderer 266: More Concurrency Updates 267: Unicode 8.0 268: XML Catalogs 269: Convenience Factory Methods for Collections 270: Reserved Stack Areas for Critical Sections 271: Unified GC Logging 272: Platform-Specific Desktop Features 273: DRBG-Based SecureRandom Implementations 274: Enhanced Method Handles 275: Modular Java Application Packaging 276: Dynamic Linking of Language-Defined Object Models 277: Enhanced Deprecation 278: Additional Tests for Humongous Objects in G1 279: Improve Test-Failure Troubleshooting 280: Indify String Concatenation 281: HotSpot C++ Unit-Test Framework 282: jlink: The Java Linker 283: Enable GTK 3 on Linux 284: New HotSpot Build System 285: Spin-Wait Hints 287: SHA-3 Hash Algorithms 288: Disable SHA-1 Certificates 289: Deprecate the Applet API 290: Filter Incoming Serialization Data 292: Implement Selected ECMAScript 6 Features in Nashorn 294: Linux/s390x Port 295: Ahead-of-Time Compilation 297: Unified arm32/arm64 Port 298: Remove Demos and Samples www.hujak.hr 45 89 JEPs!
  • 46. Java SE 9 delayed Proposed schedule change for JDK 9 mark.reinhold at oracle.com mark.reinhold at oracle.com Tue Dec 1 17:08:06 UTC 2015 The key feature of Java 9 is Project Jigsaw [1], which will introduce a standard module system and use that system to modularize both the Java SE Platform and the JDK. This large project consists of a JSR for the module system plus five JEPs, for the implementation of the module system and for other changes specific to the JDK. We've made good progress on Jigsaw over the last eighteen months: We reorganized the source code into modules in August 2014 (JEP 201 [2]), restructured run-time images to support modules in December 2014 (JEP 220 [3]), began discussions in the JSR 376 EG last February [4], and published a design overview, draft specification, and EA builds in September [5]. More recently we presented an integrated series of talks on Jigsaw at JavaOne 2015 and Devoxx BE 2015 [6] which were very well-attended and motivated many developers to download the EA builds, try them out, and send feedback and suggestions. In the current JDK 9 schedule [7] the Feature Complete milestone is set for 10 December, less than two weeks from today, but Jigsaw needs more time. The JSR 376 EG has not yet published an Early Draft Review specification, the volume of interest and the high quality of the feedback received over the last two months suggests that there will be much more to come, and we want to ensure that the maintainers of the essential build tools and IDEs have adequate time to design and implement good support for modular development. For these reasons I hereby propose a six-month extension of the JDK 9 schedule, moving the Feature Complete (FC) milestone to 25 May 2016, the General Availability (GA) milestone to 23 March 2017, and adjusting the interim milestones accordingly. As with previous schedule changes, the intent here is not to open the gates to a flood of new features unrelated to Jigsaw, nor to permit the scope of existing features to grow without bound. It would be best to use the additional time to stabilize, polish, and fine-tune the features that we already have rather than add a bunch of new ones. The later FC milestone does apply to all features, however, so reasonable proposals to target additional JEPs to JDK 9 will be considered so long as they do not add undue risk to the overall release. Comments on this proposal from JDK 9 Committers are welcome, as are reasoned objections. If no such objections are raised by 18:00 UTC next Tuesday, 8 December, or if they're raised and satisfactorily answered, then per the JEP 2.0 process proposal [8] this will be adopted as the new schedule for JDK 9. - Mark www.hujak.hr 46 Source: http://mail.openjdk.java.net/pipermail/jdk9-dev/2015-December/003149.html
  • 47. Java SE 9 delayed again Proposed schedule change for JDK 9 mark.reinhold at oracle.com mark.reinhold at oracle.com Tue Sep 13 15:56:40 UTC 2016 Eighty-five JEPs are targeted to JDK 9 [1]. Most of those are done, or very nearly so. We are not, unfortunately, where we need to be relative to the current schedule. We've made a lot of progress on Project Jigsaw [2], the key feature of the release, over the last eight months. In March 2016 we published a major update to the proposed design of the module system [3] and merged it into the JDK 9 master forest [4]. Since then many developers have downloaded the EA builds and sent in feedback (thanks!), both on the module system itself and on its impact upon the rest of the JDK. Despite this progress, at this point it's clear that Jigsaw needs more time. We recently received critical feedback that motivated a redesign of the module system's package-export feature [5], without which we'd have failed to achieve one of our main goals. There are, beyond that, still many open design issues [6], which will take time to work through. Looking at the release as a whole, the number of open bugs that are new in JDK 9 is quite a bit larger than it was at this point in JDK 8. The maintainers of many popular projects are now actively testing against the JDK 9 EA builds [7], but we'd like to see even more in order to be confident that potential issues have been found and reported. For these reasons I hereby propose a four-month extension of the JDK 9 schedule, moving the General Availability (GA) milestone to July 2017. I'll make a more detailed proposal for that date and other milestones in the next few weeks, but for now I suggest we defer the start of the Rampdown process [8] and continue to operate with the previously-adopted Feature Complete extension-request process [9]. Minor enhancements and even strongly-justified proposals to target new JEPs to JDK 9 will be considered, so long as they do not add undue risk to the overall release. As before, however, our main focus should be to use this additional time to stabilize, polish, and fine-tune the features that we already have rather than add a bunch of new ones. Comments on this proposal from JDK 9 Committers are welcome, as are reasoned objections. If no such objections are raised by 16:00 UTC next Tuesday, 20 September, or if they're raised and satisfactorily answered, then per the JEP 2.0 process proposal [a] this will be adopted as the new schedule for JDK 9. - Mark www.hujak.hr 47 Proposed schedule change for JDK 9 mark.reinhold at oracle.com mark.reinhold at oracle.com Tue Oct 11 23:25:58 UTC 2016 Still working through the details. Stay tuned ... – Mark Source: http://mail.openjdk.java.net/pipermail/jdk9-dev/2016-September/004887.html
  • 48. JDK 9 – Feature Complete JDK 9 is Feature Complete -- now it's time to ramp down mark.reinhold at oracle.com mark.reinhold at oracle.com Thu Jan 19 22:28:38 UTC 2017 We achieved the Feature Extension Complete milestone [1] in late December. All JEPs and small enhancements granted extensions [2] have been integrated into the JDK 9 master forest. Thanks to everyone for all your hard work leading up to this milestone! We're now in the first phase of the rampdown process, in which we aim to fix the bugs that need to be fixed and understand why we're not going to fix some bugs that perhaps ought to be fixed. We'll use the process that I previously proposed [3], which is now also documented under the JDK 9 Project page [4][5]. The overall feature set is, at this point, frozen. It's highly unlikely that any further JEPs will be targeted to the release. Small enhancements to new features will be considered, but the bar is now much higher. Please request approval for such enhancements via the existing FC-extension process [2]. Low-risk enhancements that add small bits of missing functionality or improve usability may be approved, especially when justified by developer feedback. Enhancements that add significant new functionality will require very strong justification. Enhancements to tests or documentation do not require advance approval. - Mark www.hujak.hr 48 Source: http://mail.openjdk.java.net/pipermail/jdk9-dev/2017-January/005505.html
  • 49. Java SE 9 Schedule Proposed Schedule for JDK 9 2016-05-26 Feature Complete (ex 2015-12-10) 2016-12-22 Feature Extension Complete 2017-01-05 Rampdown Start (ex 2016-02-25 & 2016-09-01) 2017-02-09 All Tests Run (ex 2016-02-04 & 2016-08-11) 2017-02-16 Zero Bug Bounce (ex 2016-04-21 & 2016-10-20) 2017-03-16 Rampdown Phase 2 (ex 2016-06-16 & 2016-12-01) 2017-07-06 Final Release Candidate (ex 2016-07-21 & 2017-01-26) 2017-07-27 General Availability (ex 2016-09-22 & 2017-03-23) www.hujak.hr 49 Source: openjdk.java.net/projects/jdk9/, February 2017
  • 50. Java 9 and Beyond • Project Jigsaw • Java Module System • Project Valhalla • Value Types, Specialized Generics, Var Handles… • Project Panama • Foreign Function Interface, Data Layout Control, Arrays 2.0… • Let's first see what will happen with Java 9… ☺ www.hujak.hr 50 Source: Java 9, and Beyond, Mark Reinhold, EclipseCon, March 12, 2015
  • 51. • Lack of commitment to Java EE • Members leaving? Low number of code commits? • Java EE Guardians • javaee-guardians.io • Independent group of people interested in moving Java EE forward (advocacy, awareness, support…) • And then at JavaOne – (expected) surprise • Java EE 8 (and 9) Roadmap • End of 2017?! What about Java EE? www.hujak.hr 51
  • 52. Most wanted tech in Java EE • Java EE Survey Results, Oracle, Dec 2016 1. REST Services (JAX-RS 2.1) 2. HTTP/2 (Servlet 4.0) 3. OAuth & OpenID (Security 1.0) 4. Configuration www.hujak.hr 52 Source: Java EE Survey Results and Java EE 8, Java EE Development Team, Oracle, December,2016
  • 53. Current State of Java EE • Management 2.0 and JMS 2.1 will have to wait • What about the rest? www.hujak.hr 53 Source: Java EE 8 - February 2017 update, Daivd Delabassee, www.slideshare.net/delabassee/java-ee-8-february-2017-update
  • 54. New trends • Containers and Virtualization • Official JDK + Docker? • Others: Kubernetes, Mesos, AWS ECS, VMWare… • Polyglotism everywhere • Ability to master multiple languages • Should we cover JavaScript too? Andrew Binstock, Editor in Chief, Java Magazine • Polyglot for Maven (Ruby, Groovy, Clojure, Scala, YAML…) www.hujak.hr 54
  • 55. The Fast IT Crusade www.hujak.hr 55
  • 56. Java Licensing Issues • "Oracle finally targets Java non-payers – six years after plucking Sun" • Controversial news article in The Register, Dec 16th, 2016 • Java is still free (from Java SE General FAQs) • The current version of Java – Java SE 8 – is free and available for redistribution for general purpose computing. Java SE continues to be available under the Oracle Binary Code License (BCL) free of charge. • However • JRE use for embedded devices and other computing environments may require a license fee from Oracle. • Oracle Java SE Advanced and Oracle Java SE Suite have some features that are not available in the free version. www.hujak.hr 56 Source: Java SE General FAQs, www.oracle.com/technetwork/articles/javase/faqs-jsp-136696.html
  • 57. Java Licensing Resolved • Which tools are not free? • Java Flight Recorder, Java Mission Control (JMC), JRockit, Advance Management Console (AMC) and JRE Usage Tracking • General rule – don't use -XX:+UnlockCommercialFeatures • Be careful with Oracle Java SE Advanced, Oracle Java SE Advanced Desktop i Oracle Java SE Suite • Other JDK/JRE distributions (Azul, IBM, Red Hat…) • E.g. OpenJDK licensed under GPLv2 + CPE • Read open letter from Java Champions about it www.hujak.hr 57 Source: Oracle Java SE and Oracle Java Embedded Products, www.oracle.com/technetwork/java/javase/documentation/java-se-product-editions-397069.pdf
  • 58. Some Java EE issues • Java EE claimed "obsolete" by Gartner? • In Market Guide for Application Platforms, Anne Thomas and Aashish Gupta, Nov 23rd, 2016 • Key finding: Commercial Java Platform, Enterprise Edition (Java EE) platforms' revenue declined in 2015, indicating a clear shift in the application platform market. Digital business initiatives require new features and capabilities in application platforms, and Java EE has failed to keep pace. • Recommendation: Develop a strategy to deal with the obsolescence of Java EE. Retain Java EE servers for existing legacy applications, but use lighter-weight Java frameworks for digital business application development projects or evaluate other language platforms. • Strategic Planning Assumptions: By 2019, fewer than 35% of all new business applications will be deployed in Java EE application servers. • Responses: • Java EE—the Most Lightweight Enterprise Framework?, Yolande Poirier, Oracle, Dec 2, 2016 www.hujak.hr 58
  • 59. Positive Examples in Croatia • Croatian Makers League • One great example ☺ • Curricular reform • A lot of involvement, currently stuck  • Initiatives • CISEx Fridays • Mreža Smart Day • eSkills for Jobs • Oracle Academy • Java in high schools initiative • Many hackathons & competitions • HUJAK members included ☺ www.hujak.hr 59
  • 60. The Adventures of Young CroDuke Indy • Java User Groups • Java Community • HUJAK • Members • Conferences • Partners & Friends www.hujak.hr 60
  • 62. Java Community • 460 000 Java User Group members worldwide • 192 Java Champions elected • 150+ new JCP members last year • 1 billion Java downloads per year www.hujak.hr 62
  • 63. New Java Map • New Java map at mapme.com/java-use-groups • JUGs • Java Champions • Java Events • Java for Kids www.hujak.hr 63 typo ☺
  • 64. 100+ JUGs in Europe www.hujak.hr 64 Hrvatska udruga Java korisnika – HUJAK Croatian Java User Association is an non-profit association of citizens, private persons as well as representatives of legal entities, who are in their professional, scientific or professional work involved in the development or use of technologies related to the Java language and platform.
  • 66. Java-related Conferences in Croatia www.hujak.hr 66 Conference Location Date Sessions Tracks Attendees Countries Javantura v4 Zagreb 11.2.2017. 27 3 300 - HrOUG 2016 Rovinj 18.-22.10.2016. 7 (od 96) 1 (od 9) 450 11 JavaCro'16 Rovinj 18.-20.5.2016. 56 5 260 15 Javantura v3 Zagreb 20.2.2016. 23 - 300 - JavaCro'15 Rovinj 10.-12.5.2015. 46 5 200 11 Javantura v2 Zagreb 15.11.2014. 16 - 160 - JavaCro'14 Poreč 11.-13.5.2014. 50 5 220 11 Javantura v1 Zagreb 22.2.2014. 12 - 150 - WebCamp 2013 Zagreb 26.10.2013. 24 - 600 - HrOUG 2013 Rovinj 15.-19.10.2013. 11 (od 90) 1 (od 7) 370 12 JavaCro'13 Tuhelj 3.-5.6.2013. 50 5 200 - HrOUG 2012 Rovinj 16.-20.10.2012. 11 (od 114) 1 (od 7) 370 13 WebCamp 2012 Zagreb 24.11.2012. 24 - - Java 2012 Tuhelj 29.-30.5.2012. 34 7 170 - HrOUG 2011 Rovinj 18.-22.10.2011. 12 (od 96) 1 (od 9) 460 11 We (co-)organized 15 conferences !!! ☺ #Javantura #JavaCro #HrOUG #proud
  • 68. Popularity – hujak.hr • Posts: 741 + Pages: 55 • Total view: 120.000+ • 16.000+ in 2012, 25.000+ in 2013, 28.000+ in 2014, 24.000+ in 2015, 25.000+ in 2016, 2.500+ in 2017 ☺ • Monthly max: 6.663 (Mar 2016) • Daily max: 1664 (March 30, 2016) www.hujak.hr 68
  • 71. New Indiana Jones Movie? • JavaCro'17 • Giveaways www.hujak.hr 71
  • 72. Call to JavaCro’17 • May 10-12, 2017, Rovinj • 300+ attendees, 50+ sessions, 3+ tracks, 2+ days • Call for Speakers is open at 2017.JavaCro.hr www.hujak.hr 72
  • 73. Legendary T-shirt toss? • Sorry, no T-shirts but we have some books instead www.hujak.hr 73
  • 74. Agilni razvoj softvera • Roko Roić & Luka Ferlež • The only book in Croatian about Scrum, Lean and Extreme Programming • Contains the most famous Agile methodologies • Special Javantura discount ask Roko about it ☺ www.hujak.hr 74
  • 75. Manning books on discount • Manning offered us 40% discount on all books • Use code: ctwjavantura • www.manning.com • Special thanks to Marko Lukša ☺ www.hujak.hr 75
  • 76. Kubernetes in Action • Marko Lukša • Simple containerized web application on Kubernetes cluster running in Google Container Engine • How to use Kubernetes to deploy self-healing scalable distributed applications as well as multi-component applications • www.manning.com/books/ kubernetes-in-action www.hujak.hr 76
  • 77. Spark in Action • Petar Zečević & Marko Bonaći • Theory and skills you need to effectively handle batch and streaming data using Spark • Fully updated for Spark 2.0 • www.manning.com/books/ spark-in-action • Could win one at SV Group promo stand www.hujak.hr 77
  • 78. O'Reilly and Packt Free Books • More than 240 free O'Reilly ebooks • www.oreilly.com/programming/free/ • One free Packt book every day • www.packtpub.com/packt/offers/free-learning www.hujak.hr 78
  • 79. Instead of Conclusion Call for Participation! • HUJAK needs your help in: • Everyday life of our JUG • Organizing conferences (speakers and sponsors) • Organizing meetups and workshops • Education and certification activities • Employment-related activities HUJAK is YOU! 79www.hujak.hr
  • 80. Thank you & greetings from HUJAK! • Web page hujak.hr • www.hujak.hr • LinkedIn group HUJAK • www.linkedin.com/groups?gid=4320174 • Facebook group page HUJAK.hr • www.facebook.com/HUJAK.hr • Twitter profile @HUJAK_hr • twitter.com/HUJAK_hr www.hujak.hr 80