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.##|#

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