Is An Agile Standard Possible For Java?

  • View
    1.028

  • Download
    0

  • Category

    Software

Preview:

Citation preview

© Copyright Azul Systems 2017

© Copyright Azul Systems 2015

@speakjavaazul.com

Is An Agile StandardFor Java Possible?

Simon RitterDeputy CTO, Azul Systems

1

© Copyright Azul Systems 2017

© Copyright Azul Systems 2017

Waterfall vs. Agile

Requirements/Design/Implement/Test

Agileiteration 1

Agileiteration 2

Agileiteration 3

Agileiteration n

Waterfall

Agile

© 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

© Copyright Azul Systems 2017

1995

© Copyright Azul Systems 2017

1997

Sun Microsystems sues Microsoft over Java implementation in IE4

© Copyright Azul Systems 2017

1998

© Copyright Azul Systems 2017

1999

18

© 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?

© Copyright Azul Systems 2017

2005-2011

Apache Harmony

© Copyright Azul Systems 2017

2006

javac Hotspot

© Copyright Azul Systems 2017

2007

(Almost) all remaining codeOpenJDK 7 b53 (2009)

100% open source

© Copyright Azul Systems 2017

2007-2017: 10 Years Of OpenJDK

© Copyright Azul Systems 2017

OpenJDK Binary Distributions

Internal only

Java SEreference

implementation

© 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

© 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

© 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

© Copyright Azul Systems 2017

JEP 2.0 Process

© 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

© 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

© 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

© Copyright Azul Systems 2017

© Copyright Azul Systems 2015

@speakjavaazul.com

Thank You!

Simon RitterDeputy CTO, Azul Systems

22

Recommended