More Related Content
Similar to Java: how to thrive in the changing world
Similar to Java: how to thrive in the changing world (20)
More from Alexey Fyodorov
More from Alexey Fyodorov (13)
Java: how to thrive in the changing world
- 2. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
2
The following is intended to outline our general product direction. It is intended
for information purposes only, and may not be incorporated into any contract.
It is not a commitment to deliver any material, code, or functionality, and should
not be relied upon in making purchasing decisions. The development, release,
and timing of any features or functionality described for Oracle’s products
remains at the sole discretion of Oracle.
- 3. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
3
https://twitter.com/navalny/status/326243610418884610
- 4. Java: how to thrive
in the changing world
Alexey Fedorov, Ella Nekipelova
Oracle Engineers, JCK Team, Java Platform Group
- 5. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
5
Agenda
Bugs in your application
Updating Java
Java Platform Specification
Compatibility: non-trivial example
Summary
- 6. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
6
Java application environment
JDK
Hardware
Frameworks
OS
Your Java
Application
- 7. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
7
How to fix bugs
OS
JDK
Frameworks
App
Hardware
Create an issue or just fix it!
Create an issue. Opensource? Send a patch!
OracleJDK/OpenJDK: file a bug!
Create issue, wait for fix
Relax and enjoy
Other vendors: it depends
- 8. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
8
Updates
Your Application
– Company and project update procedures
Frameworks
– Maven
OS
– Install patches
– Upgrade/Change OS
Hardware
– Replace one server box with another
- 9. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
9
Updating Java
Type of updates:
– Release update
7u17 → 7u21
– Major platform update:
Java 7 → Java 8
Change Java vendor
– http://en.wikipedia.org/wiki/
List_of_Java_virtual_machines
- 10. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
10
How do we manage changes?
OpenJDK / Oracle JDK
JDK QA: tests for
Public APIs (java.awt.*)
Private APIs (sun.awt.*)
Community
Java users around the world
Java from other vendors
Should be certified
Java Compatibility Kit (JCK)
Hundred thousands
conformance tests
Feedback from licencees
- 11. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
11
Problem
Millions of Java application vs.
different versions and vendors
– How to agree?
Public specification play
role of the protocol!
API specification
(aka Javadoc)
Java
Language
Specification
(JLS)
Specification
Java Virtual Machine
Specification (JVMS)
Standalone
documents
- 12. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
12
Java Specification is a protocol!
SMTP
Hundreds of clients vs.
hundreds of servers
100s + 100s = 100s
Timeline
1982 – RFC 821
2001 – RFC 2821
2008 – RFC 5321
… and protocol cannot be changed too often
Java
Millions of applications vs. dozens
releases from dozens vendors
1000000s + 10s = 1000000s
Timeline
1996 – JDK 1.0 2002 – J2SE 1.4
1997 – J2SE 1.1 2004 – J2SE 5.0
1998 – J2SE 1.2 2006 – Java SE 6
2000 – J2SE 1.3 2011 – Java SE 7
- 13. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
13
Example: Adding null key to empty TreeMap
- 14. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
14
How do we manage specification?
Special procedures/policies
– Multiple review for every change
Tracking
Accepting / Rejecting
Special tools - http://jcp.org/en/resources/tdk
– Signatures
SigTest - http://sigtest.java.net/
– Specification markup and conformance tests binding
SpecTrac / SpecDiff
- 15. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
15
Summary
Updating the platform, which is used by hundreds millions
people around the world is a very difficult thing!
Oracle has special tools, processes and policies
– Different policies for major releases (Java 7 → Java 8)
and for updates (7uXX)
– Tracking/Managing the Java Specification
Special processes including multiple review
Tools: SpecTrac, SigTest and others
Oracle takes care of you!
- 16. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
16
Java: how to thrive in the changing world
Q&A
Alexey Fedorov (alexey.x.fedorov@oracle.com), @23derevo
Ella Nekipelova (ella.nekipelova@oracle.com)