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

Post on 14-Jan-2017

147 views 0 download

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

20#Years#of#Java#

Simon#Ri2er#(#@speakjava#)#Steve#Ellio2##(#@jaberwok#)##28th#November#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 !

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

2010…#

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

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*

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.”'

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

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

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

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#

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'

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

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*

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*

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

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*

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

Over#to#Simon…#

@speakjava#

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

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

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

The#Agent,#Becomes#Duke#

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

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

Early#Java#IDE#

Java#Workshop#

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#

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

The#Java#Staaon#

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*

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

Sun#SPOTS#

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

Java#ME#

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

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

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#

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*

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#

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#

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#

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#

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

“Write'Once,'Run'Anywhere”'

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