1 9 9 5
1 9 9 5 - 2 0 1 5
H O W D I D J AVA
S U R V I V E ?
D O T- C O M B U B B L E
M O B I L E P H O N E S
M U LT I - C O R E R E V O L U T I O N
T H E C L O U D
B I G D A TA
E V O LV E D
• Open Source
• Backwards Compat
• Polyglot
• Concurrency
• Portability
E M B R A C E D C H A N G E !
J AVA
R E N A I S S A N C E
N E T F L I X
T W I T T E R
G O O G L E
J O E K U T N E R
@ C O D E F I N G E R
H E R O K U
1 9 9 5
S U N M I C R O S Y S T E M S
1 9 9 5
N E T S C A P E
A P P L E T S !
S E R V E R - S I D E J AVA
J D K 1 . 2
• Just-In-Time Compiler
• Reflection
• Collections
• Database libraries
• Swing
• Java Micro Edition
1 9 9 8
D O T- C O M B U B B L E
S U N M I C R O S Y S T E M S
$ 2 5 0 / S H A R E
$ 1 0 / S H A R E
J C P
J A VA C O M M U N I T Y P R O C E S S
J AVA
S P E C I F I C AT I O N
R E Q U E S T ( J S R )
• IPv6
• Regex
• Assertions
• Logging API
• New I/O
2 0 0 4
M O O R E ’ S L A W: C L O C K R A T E C U R V E S F L A T T E N O U T
2 0 0 4
C A N C E L E D I T S N E X T- G E N C H I P T O F O C U S O N D U A L - C O R E
J D K 1 . 5
• Concurrency
• Generics
• Other stuff
C O M P E T I T I O N
B E N C H M A R K S
P E R F O R M A N C E
• Concurrent Garbage
Collection
• Non-Uniform Memory
Access
• Large Page Support
• Heap Compaction
B A D AT $ $ $
S U N M I C R O S Y S T E M S
P O L I T I C S
A PA C H E H A R M O N Y
2 0 0 6
J D K 6 : L A S T R E L E A S E F O R 5 Y E A R S
P O LY G L O T
Scala
Clojure
2 0 0 7 - 2 0 0 9
S T I L L B A D A T M A K I N G M O N E Y
O P E N J D K
G N U G P L L I C E N S E
2 0 0 9
N O T H I N G F O R A W H I L E
J D K 7
• Project Coin
• Meh
• InvokeDynamic
2 0 1 1
B I G D ATA
P R O G R E S S
J D K 8
• PermGen Removal
• Security
• Lambdas
• Streams
• Compact Profiles
2 0 1 4
http://spectrum.ieee.org/computing/software/top-10-programming-languages
N A S A
http://jaxenter.com/developing-nasas-mission-software-with-java-108114.html
B L U - R AY
http://news.cnet.com/Java-to-appear-in-next-gen-DVD-players/2100-1046_3-5766409.html
I N D U S T R I A L R O B O T S
http://www.oracle.com/us/solutions/internetofthings/java-iot-industrial-automation-2430562.pdf
N E T F L I X
2 Billion Content Requests Per Day
57.4 Million Subscribers
33% of North American downstream traffic
http://www.oraclejavamagazine-digital.com/javamagazine_twitter/20150304#pg22
Scala
T W I T T E R
1.6 billion search queries per day
302 million active users
340 million tweets per day
http://www.benzinga.com/news/earnings/15/04/5452400/twitter-mau-were-302m-for-q1-up-18-yoy
Scala
J D K 9
• Project Jigsaw
2 0 1 6
J AVA
R E N A I S S A N C E
C L O U D
I O T
M O B I L E
B I G D A TA
J O E K U T N E R
@ C O D E F I N G E R
H E R O K U

Java 20

  • 1.
  • 2.
    1 9 95 - 2 0 1 5
  • 3.
    H O WD I D J AVA S U R V I V E ? D O T- C O M B U B B L E M O B I L E P H O N E S M U LT I - C O R E R E V O L U T I O N T H E C L O U D B I G D A TA
  • 4.
    E V OLV E D • Open Source • Backwards Compat • Polyglot • Concurrency • Portability E M B R A C E D C H A N G E !
  • 5.
    J AVA R EN A I S S A N C E N E T F L I X T W I T T E R G O O G L E
  • 6.
    J O EK U T N E R @ C O D E F I N G E R H E R O K U
  • 8.
    1 9 95 S U N M I C R O S Y S T E M S
  • 9.
    1 9 95 N E T S C A P E
  • 10.
    A P PL E T S !
  • 11.
    S E RV E R - S I D E J AVA
  • 12.
    J D K1 . 2 • Just-In-Time Compiler • Reflection • Collections • Database libraries • Swing • Java Micro Edition 1 9 9 8
  • 13.
    D O T-C O M B U B B L E
  • 14.
    S U NM I C R O S Y S T E M S $ 2 5 0 / S H A R E $ 1 0 / S H A R E
  • 15.
    J C P JA VA C O M M U N I T Y P R O C E S S
  • 16.
    J AVA S PE C I F I C AT I O N R E Q U E S T ( J S R ) • IPv6 • Regex • Assertions • Logging API • New I/O
  • 18.
    2 0 04 M O O R E ’ S L A W: C L O C K R A T E C U R V E S F L A T T E N O U T
  • 19.
    2 0 04 C A N C E L E D I T S N E X T- G E N C H I P T O F O C U S O N D U A L - C O R E
  • 20.
    J D K1 . 5 • Concurrency • Generics • Other stuff
  • 21.
    C O MP E T I T I O N
  • 22.
    B E NC H M A R K S
  • 23.
    P E RF O R M A N C E • Concurrent Garbage Collection • Non-Uniform Memory Access • Large Page Support • Heap Compaction
  • 24.
    B A DAT $ $ $ S U N M I C R O S Y S T E M S
  • 25.
    P O LI T I C S A PA C H E H A R M O N Y
  • 26.
    2 0 06 J D K 6 : L A S T R E L E A S E F O R 5 Y E A R S
  • 27.
    P O LYG L O T Scala Clojure
  • 29.
    2 0 07 - 2 0 0 9 S T I L L B A D A T M A K I N G M O N E Y
  • 30.
    O P EN J D K G N U G P L L I C E N S E
  • 31.
  • 32.
    N O TH I N G F O R A W H I L E
  • 33.
    J D K7 • Project Coin • Meh • InvokeDynamic 2 0 1 1
  • 34.
    B I GD ATA P R O G R E S S
  • 35.
    J D K8 • PermGen Removal • Security • Lambdas • Streams • Compact Profiles 2 0 1 4
  • 37.
  • 38.
    N A SA http://jaxenter.com/developing-nasas-mission-software-with-java-108114.html
  • 39.
    B L U- R AY http://news.cnet.com/Java-to-appear-in-next-gen-DVD-players/2100-1046_3-5766409.html
  • 40.
    I N DU S T R I A L R O B O T S http://www.oracle.com/us/solutions/internetofthings/java-iot-industrial-automation-2430562.pdf
  • 41.
    N E TF L I X 2 Billion Content Requests Per Day 57.4 Million Subscribers 33% of North American downstream traffic http://www.oraclejavamagazine-digital.com/javamagazine_twitter/20150304#pg22 Scala
  • 42.
    T W IT T E R 1.6 billion search queries per day 302 million active users 340 million tweets per day http://www.benzinga.com/news/earnings/15/04/5452400/twitter-mau-were-302m-for-q1-up-18-yoy Scala
  • 44.
    J D K9 • Project Jigsaw 2 0 1 6
  • 45.
    J AVA R EN A I S S A N C E C L O U D I O T M O B I L E B I G D A TA
  • 46.
    J O EK U T N E R @ C O D E F I N G E R H E R O K U