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
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
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
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
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
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
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
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.
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
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