London Java Community (LJC) Open Meeting Keynote - Nov 2015

34
20 Years of Java Simon Ri2er ( @speakjava ) Steve Ellio2 ( @jaberwok ) 28 th November 2015

Transcript of London Java Community (LJC) Open Meeting Keynote - Nov 2015

Page 1: London Java Community (LJC) Open Meeting Keynote - Nov 2015

20#Years#of#Java#

Simon#Ri2er#(#@speakjava#)#Steve#Ellio2##(#@jaberwok#)##28th#November#2015#

Page 2: London Java Community (LJC) Open Meeting Keynote - Nov 2015

Copyright#©#2015,#Oracle#and/or#its#affiliates.#All#rights#reserved.##|#

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. + whatever Simon says !

Page 3: London Java Community (LJC) Open Meeting Keynote - Nov 2015

Copyright#©#2015,#Oracle#and/or#its#affiliates.#All#rights#reserved.##|# 3#

2010…#

Page 4: London Java Community (LJC) Open Meeting Keynote - Nov 2015

Copyright#©#2015,#Oracle#and/or#its#affiliates.#All#rights#reserved.##|#

Page 5: London Java Community (LJC) Open Meeting Keynote - Nov 2015

Copyright#©#2015,#Oracle#and/or#its#affiliates.#All#rights#reserved.##|#

Objec&ve(C*NSFNET#decommissioned#1st#Wiki#SSL#2.0#NPAPI#.mp3#.png#

Church,'Eckert,'S-bitz,'Atanasoff,'Coombs,'Zuse…'

1995*

Page 6: London Java Community (LJC) Open Meeting Keynote - Nov 2015

Copyright#©#2015,#Oracle#and/or#its#affiliates.#All#rights#reserved.##|#

November#1995#–#Revised#!#1996#

“Sun'CEO'Sco<'McNealy'unsuccessfully'tried'to'coax'a'135Gpound'Greater'Swiss'Mountain'dog'called'Network'to'urinate'on'four'cardboard'fire'hydrants'labeled'DEC,'IBM,'HP'and'MicrosoR.”'

Page 7: London Java Community (LJC) Open Meeting Keynote - Nov 2015

Copyright#©#2015,#Oracle#and/or#its#affiliates.#All#rights#reserved.##|#

Up to 115,200 bits/sec (in 1994 standard modem speed was V.34 – 28.8Kbits/sec) 802.11b wireless came in 1999 (The WiFi Alliance formed that year)

50 Mhz i486 8.4” screen 8Mb RAM (expandable to 24Mb) 250Mb Hard Disk PCMCIA slot Serial, parallel, VGA MS-DOS / Windows

Page 8: London Java Community (LJC) Open Meeting Keynote - Nov 2015

Copyright#©#2015,#Oracle#and/or#its#affiliates.#All#rights#reserved.##|#

Page 9: London Java Community (LJC) Open Meeting Keynote - Nov 2015

Copyright#©#2015,#Oracle#and/or#its#affiliates.#All#rights#reserved.##|# 9#

Page 10: London Java Community (LJC) Open Meeting Keynote - Nov 2015

Copyright#©#2015,#Oracle#and/or#its#affiliates.#All#rights#reserved.##|#

The#beginning(s)…#•  1990#(December)##Green#Project#starts#•  1991#Development#of#Oak#starts#•  1992#(3rd#September)##Star7,#1st#demo#•  1993#FirstPerson#•  1994#WebRunner#•  1995#March#–#San#Jose#Mercury#aracle###########23rd#May#–#SunWorld#official#announcement###########1.0a2#on#the#web###########Netscape#Navigator#2.0#support#(September)#

•  1996#23rd#January#b#Java#1.0#Released###May#29th#b#First#JavaOne#

Page 11: London Java Community (LJC) Open Meeting Keynote - Nov 2015

Copyright#©#2015,#Oracle#and/or#its#affiliates.#All#rights#reserved.##|#

1st#Public#Demo#TED#6#b#Monterey#February#22ndb25th#1995#

h<p://www.ch.ic.ac.uk/java/java_3.html'

Page 12: London Java Community (LJC) Open Meeting Keynote - Nov 2015

Copyright#©#2015,#Oracle#and/or#its#affiliates.#All#rights#reserved.##|# 12#

Page 13: London Java Community (LJC) Open Meeting Keynote - Nov 2015

Copyright#©#2015,#Oracle#and/or#its#affiliates.#All#rights#reserved.##|#

(some)#Influences#on#Java#####(née#GreenTalk/Oak)#

Fortran

LISP

Clojure

Pascal (p-code)

Perl

C

PL/M Smalltalk

Java

occam

BASIC

Ruby

Scala

Coral

Algol

Ada

BCPL

Forth

Simula Modula

C++ Scheme

Objective C

Erlang

Haskell Python

Some info from http://en.wikipedia.org/wiki/Timeline_of_programming_languages & http://hopl.murdoch.edu.au/

VB

PHP

Groovy

LiveScript/JavaScript

Dart

Go

Mesa Cedar

B

Self (Hotspot)

Kotlin

Ceylon

Fantom

TypeScript

Swift

57*58*59*60*61*62*63*64*65*66*67*68*69*70*71*72*73*74*75*76*77*78*79*80*81*82*83*84*85*86*87*88*89*90*91*92*93*94*95*96*97*98*99*00*01*02*03*04*05*06*07*08*09*10*11*12*13*14*15*

Page 14: London Java Community (LJC) Open Meeting Keynote - Nov 2015

Copyright#©#2015,#Oracle#and/or#its#affiliates.#All#rights#reserved.##|#

(some)#Influences#on#Java#####(née#GreenTalk/Oak)#

Fortran

LISP

Clojure

Pascal (p-code)

Perl

C

PL/M Smalltalk

Java

occam

BASIC

Ruby

Scala

Coral

Algol

Ada

BCPL

Forth

Simula Modula

C++ Scheme

Objective C

Erlang

Haskell Python VB

PHP

Groovy

LiveScript/JavaScript

Dart

Go

Mesa Cedar

B

Self (Hotspot)

Kotlin

Ceylon

Fantom

TypeScript

Swift

57*58*59*60*61*62*63*64*65*66*67*68*69*70*71*72*73*74*75*76*77*78*79*80*81*82*83*84*85*86*87*88*89*90*91*92*93*94*95*96*97*98*99*00*01*02*03*04*05*06*07*08*09*10*11*12*13*14*15*

Page 15: London Java Community (LJC) Open Meeting Keynote - Nov 2015

Copyright#©#2015,#Oracle#and/or#its#affiliates.#All#rights#reserved.##|# 15#

Page 16: London Java Community (LJC) Open Meeting Keynote - Nov 2015

Copyright#©#2015,#Oracle#and/or#its#affiliates.#All#rights#reserved.##|#

Keep*it*simple**Language*stable*considering*****(*method*pointers*****(*parameterized*types**VM*Extension*for*other*languages*(one*day)**Performance**Security*

Page 17: London Java Community (LJC) Open Meeting Keynote - Nov 2015

Copyright#©#2015,#Oracle#and/or#its#affiliates.#All#rights#reserved.##|# 17#

Over#to#Simon…#

@speakjava#

Page 18: London Java Community (LJC) Open Meeting Keynote - Nov 2015

Copyright#©#2015,#Oracle#and/or#its#affiliates.#All#rights#reserved.##|#

Revealed:#The#Revenue#Plan#For#Java!#(Circa#1996)#

Page 19: London Java Community (LJC) Open Meeting Keynote - Nov 2015

Copyright#©#2015,#Oracle#and/or#its#affiliates.#All#rights#reserved.##|#

The#Agent,#Becomes#Duke#

Page 20: London Java Community (LJC) Open Meeting Keynote - Nov 2015

Copyright#©#2015,#Oracle#and/or#its#affiliates.#All#rights#reserved.##|#

Page 21: London Java Community (LJC) Open Meeting Keynote - Nov 2015

Copyright#©#2015,#Oracle#and/or#its#affiliates.#All#rights#reserved.##|#

Early#Java#IDE#

Java#Workshop#

Page 22: London Java Community (LJC) Open Meeting Keynote - Nov 2015

Copyright#©#2015,#Oracle#and/or#its#affiliates.#All#rights#reserved.##|#

The#Plahorm#Evolves#(1998)#•  Java#becomes#Java#2#• Now#three#versions#

– Java#2#ME#(Micro#Ediaon)#– Java#2#SE#(Standard#Ediaon)#– Java#2#EE#(Enterprise#Ediaon)#

22#

Page 23: London Java Community (LJC) Open Meeting Keynote - Nov 2015

Copyright#©#2015,#Oracle#and/or#its#affiliates.#All#rights#reserved.##|#

The#Java#Staaon#

Page 24: London Java Community (LJC) Open Meeting Keynote - Nov 2015

Copyright#©#2015,#Oracle#and/or#its#affiliates.#All#rights#reserved.##|#

The#Java#Ring#

• Program#in#Java#– Subset#

• Compiles#to#JVM#bytecode#subset#• Runs#in#any#footprint#

– 10s#of#Kb#

•  Java#Card#used#by#GSM#SIMs#

24#

Wearing*A*Java*Card*On*Your*Finger*

Page 25: London Java Community (LJC) Open Meeting Keynote - Nov 2015

Copyright#©#2015,#Oracle#and/or#its#affiliates.#All#rights#reserved.##|# 25#

Sun#SPOTS#

Squawk#VM#Running#on#the#bare#metal#

Java#ME#

Page 26: London Java Community (LJC) Open Meeting Keynote - Nov 2015

Copyright#©#2015,#Oracle#and/or#its#affiliates.#All#rights#reserved.##|# 26#

A#Brief#History#Of#The#JDK#

Page 27: London Java Community (LJC) Open Meeting Keynote - Nov 2015

Copyright#©#2015,#Oracle#and/or#its#affiliates.#All#rights#reserved.##|# 27#

Animals,#Other#Code#Names#And#Versioning…#

Release* Code*Name* Release*Date*1.1.4# Sparkler# 12th#September,#1997#1.1.5# Pumpkin# 3rd#December,#1997#1.1.6# Abigail# 24th#April,#1998#1.1.7# Brutus# 28th#September,#1998#1.1.8# Chelsea# 8th#April,#1999#1.2# Playground# 4th*December,*1998*1.2.1# bbbbb# 30th#March,#1999#1.2.2# Cricket# 8th#July,#1999#

Page 28: London Java Community (LJC) Open Meeting Keynote - Nov 2015

Copyright#©#2015,#Oracle#and/or#its#affiliates.#All#rights#reserved.##|# 28#

Animals,#Other#Code#Names#and#Versioning…#

Release* Code*Name* Release*Date*1.3# Kestrel# 8th*May,*2000*1.3.1# Ladybird# 17th#May,#2001#1.4# Merlin# 13th#February,#2002#1.4.1# Hopper# 16th#September,#2002#1.4.2# Manas# 26th#June,#2003#5.0# Tiger# 29th*September,*2004*6# Mustang# 12th*December,*2006*7# Dolphin# 28th*July,*2011*

Page 29: London Java Community (LJC) Open Meeting Keynote - Nov 2015

Copyright#©#2015,#Oracle#and/or#its#affiliates.#All#rights#reserved.##|#

Features,#Features,#Features#•  JDK#1.1:#Java#Beans,#RMI,#JIT,#Inner#classes#•  JDK#1.2:#Swing,#Plugin,#IDL,#Collecaons,#strichp#•  JDK#1.3:#HotSpot,#RMI/CORBA,#Java#Sound#•  JDK#1.4:#JCP,#Webstart,#NIO,#Logging,#asseraons#•  JDK#5.0:#Generics,#Autobboxing/unboxing,#Concurrency#ualiaes,#Annotaaons,#varargs,#staac#imports,#enumeraaons#

•  JDK#6:#Scripang,#XML#and#Web#Services#•  JDK#7:#Project#Coin,#Forkbjoin,#invokedynamic,#NIOb2,#JSR#166x#•  JDK#8:#Lambdas,#streams,#DatebTime#API,#Type#Annotaaons,#Nashorn#

29#

Page 30: London Java Community (LJC) Open Meeting Keynote - Nov 2015

Copyright#©#2015,#Oracle#and/or#its#affiliates.#All#rights#reserved.##|# 30#

Classes*In*The*JDK*Bigger#Means#Be2er!#

211#477#

1754#2104#

2991#3550#

4068# 4299#4515# 4544#

0#

1000#

2000#

3000#

4000#

5000#

1.02# 1.1# 1.2# 1.3# 1.4# 5# 6# 7# 8# 9#

Page 31: London Java Community (LJC) Open Meeting Keynote - Nov 2015

Copyright#©#2015,#Oracle#and/or#its#affiliates.#All#rights#reserved.##|#

A#Brief#Note#On#Deprecaaon#• @deprecated#was#introduced#in#JDK#1.1#(1996)#

• How#many#have#been#removed#since#JDK#1.1?#– Exactly#zero!#

31#

Element* Number*Deprecated*Interface# 18#Class# 23#Excepaon# 5#Method# 379#Constructor# 20#

Page 32: London Java Community (LJC) Open Meeting Keynote - Nov 2015

Copyright#©#2015,#Oracle#and/or#its#affiliates.#All#rights#reserved.##|# 32#

(XX*Op&ons*In*the*Oracle*JVM*Bigger#Means#Be2er!#

159#224# 260#

343#410#

546#629# 623#

0#

100#

200#

300#

400#

500#

600#

700#

1.4# 1.4.1# 1.4.2# 5# 6# 7# 8# 9#

Page 33: London Java Community (LJC) Open Meeting Keynote - Nov 2015

Copyright#©#2015,#Oracle#and/or#its#affiliates.#All#rights#reserved.##|# 33#

“Write'Once,'Run'Anywhere”'

Page 34: London Java Community (LJC) Open Meeting Keynote - Nov 2015

Copyright#©#2015,#Oracle#and/or#its#affiliates.#All#rights#reserved.##|#