22
© Copyright Azul Systems 2017 © Copyright Azul Systems 2015 @speakjav a azul.com Is An Agile Standard For Java Possible? Simon Ritter Deputy CTO, Azul Systems 1

Is An Agile Standard Possible For Java?

Embed Size (px)

Citation preview

Page 1: Is An Agile Standard Possible For Java?

© Copyright Azul Systems 2017

© Copyright Azul Systems 2015

@speakjavaazul.com

Is An Agile StandardFor Java Possible?

Simon RitterDeputy CTO, Azul Systems

1

Page 2: Is An Agile Standard Possible For Java?

© Copyright Azul Systems 2017

Page 3: Is An Agile Standard Possible For Java?

© Copyright Azul Systems 2017

Waterfall vs. Agile

Requirements/Design/Implement/Test

Agileiteration 1

Agileiteration 2

Agileiteration 3

Agileiteration n

Waterfall

Agile

Page 4: Is An Agile Standard Possible For Java?

© Copyright Azul Systems 2017

Agile Manifesto Applied To Java1. Satisfy the customer through early and continuous delivery

of valuable software2. Welcome changing requirements, even late in development3. Deliver working software frequently7. Working software is the measure of progress8. Agile processes promote sustainable development10. Continuous attention to technical excelllence and good

design enhances agility

Page 5: Is An Agile Standard Possible For Java?

© Copyright Azul Systems 2017

1995

Page 6: Is An Agile Standard Possible For Java?

© Copyright Azul Systems 2017

1997

Sun Microsystems sues Microsoft over Java implementation in IE4

Page 7: Is An Agile Standard Possible For Java?

© Copyright Azul Systems 2017

1998

Page 8: Is An Agile Standard Possible For Java?

© Copyright Azul Systems 2017

1999

18

Page 9: Is An Agile Standard Possible For Java?

© Copyright Azul Systems 2017

JCP Golden TriangleSpecifications (JSRs)

ReferenceImplementation (RI)

TechnologyCompatibility Kit

(TCK)

Can you build it?Is the spec.

unambiguous?

Does the RI conform to the spec?

Page 10: Is An Agile Standard Possible For Java?

© Copyright Azul Systems 2017

2005-2011

Apache Harmony

Page 11: Is An Agile Standard Possible For Java?

© Copyright Azul Systems 2017

2006

javac Hotspot

Page 12: Is An Agile Standard Possible For Java?

© Copyright Azul Systems 2017

2007

(Almost) all remaining codeOpenJDK 7 b53 (2009)

100% open source

Page 13: Is An Agile Standard Possible For Java?

© Copyright Azul Systems 2017

2007-2017: 10 Years Of OpenJDK

Page 14: Is An Agile Standard Possible For Java?

© Copyright Azul Systems 2017

OpenJDK Binary Distributions

Internal only

Java SEreference

implementation

Page 15: Is An Agile Standard Possible For Java?

© Copyright Azul Systems 2017

JDK 8

DocLint

Base64 Encoding/decoding

Streams APIRemove permgen

Lambdas Nashorn

Repeating annotations

Extension methods

Compact Profiles

Date and Time API

Optional

Annotations on types

Compact stringsScalable update variables

Page 16: Is An Agile Standard Possible For Java?

© Copyright Azul Systems 2017

JDK 9

jlink

Enhanced deprecation

REPL: jshellStream enhancements

ModularityConcurrency

updates

Variable Handles

Factory methods for Collections

Spin-Wait Hints

G1 Default Collector

Milling Project Coin

Better stack walking

Compact stringsPrivate methods in interfaces

Page 17: Is An Agile Standard Possible For Java?

© Copyright Azul Systems 2017

Making OpenJDK More Agile JDK Enhancement Proposals Introduced in JDK 8

– Smaller pieces of work than a full JSR– Also covers things not covered by Java SE spec.

JDK 8 had 56 JEPs (u20 had 2, u40 had 12, u60 had 2) JDK 9 has 89 JEPs Provides a roadmap

– Intended to extend at least 3 years into the future

Page 18: Is An Agile Standard Possible For Java?

© Copyright Azul Systems 2017

JEP 2.0 Process

Page 19: Is An Agile Standard Possible For Java?

© Copyright Azul Systems 2017

Issues Creating point releases is great

– New functionality delivered rapidly What about the spec? What about the TCK? How to build and ship conformant implementations?

19

Page 20: Is An Agile Standard Possible For Java?

© Copyright Azul Systems 2017

Incubator Modules (JEP 11) Develop APIs without making them part of the standard

– At least not straight away Allow developers to “kick the tyres”

– Not always possible to get a new API right first time Move from incubator to full module

– Becomes part of the standard JDK 9 only has one incubator: HTTP/2 (JEP 110) Some concerns about fragmentation--do-not-resolve-by-default

20

Page 21: Is An Agile Standard Possible For Java?

© Copyright Azul Systems 2017

Summary Java has followed a winding road to open source and open

standards Developed through JCP and JDK Enhancement Proposals

– Not driven entirely by Oracle, community involvement Potentially the Java platform could become more agile

– This is not without its challenges Java will continue to be the world’s most popular

development platform

21

Page 22: Is An Agile Standard Possible For Java?

© Copyright Azul Systems 2017

© Copyright Azul Systems 2015

@speakjavaazul.com

Thank You!

Simon RitterDeputy CTO, Azul Systems

22