history of java
DESCRIPTION
Once upon a time in the C++ century, the Great King of Sun said people need Duke, The PDA (a medieval version of a tablet). He picked his bravest knights – Naughton, Sheriden and Gosling – and entrusted them a secret mission to travel the universe in search for a perfect language that Duke can use. After three years of a dangerous journey in a world of bits, bytes and memory leakages, on an Asian isle they found it. Java made of Oak has been discovered. When they returned the King was not in power anymore. New world was ruled by a mysterious organisation, World Wide Web. Our brave knights honoured it with the glorious Java. And the world became perfect… Mani and Rafal will take your through an exciting story of great programmers, multi-billion company wars, and - most importantly – language features. The history of Java, from its inception till just about today.TRANSCRIPT
![Page 1: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/1.jpg)
History of JavaFrom its inception till about now...
bit.ly/1e3yqGS
![Page 2: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/2.jpg)
Who are we ?
Mani Sarkar @theNeomatrix369Rafal Wicha @rafalwicha
#historyofjavaparty
![Page 3: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/3.jpg)
DisclaimerIdeas and opinions expressed here are only ours and you can certainly NOT hold us to it. YMMV.
We’ve done our best to summarise more than 23 years of Java’s history.
And FYI Java is the best platform ever!
![Page 4: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/4.jpg)
Agenda
● Java roots ● Platform evolution● Open source● People!
![Page 5: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/5.jpg)
© James Gosling1990
![Page 6: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/6.jpg)
Patrick Naughton
© James Gosling1990
![Page 7: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/7.jpg)
Patrick Naughton
Scott McNealy
© James Gosling1990
![Page 8: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/8.jpg)
Patrick Naughton
James Gosling
© James Gosling1990
![Page 9: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/9.jpg)
© Google Maps1991
Menlo Park, California
Green Project
![Page 10: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/10.jpg)
Duke here...
...and here
1992
![Page 11: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/11.jpg)
The Internet
1993-95
![Page 12: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/12.jpg)
Bill JoyEric Schmidt
1993-95
![Page 13: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/13.jpg)
Marc Andreessen
1995
![Page 14: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/14.jpg)
Marc Andreessen
1995
![Page 15: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/15.jpg)
Marc Andreessen
1995
![Page 16: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/16.jpg)
© Google Maps
Menlo Park, California
![Page 17: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/17.jpg)
© Google Maps
Oak maybe?
![Page 18: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/18.jpg)
Silk
DNA
WebDancerNetProse1995
![Page 19: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/19.jpg)
Silk
DNA
WebDancerNetProse1995
![Page 20: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/20.jpg)
Silk
DNA
WebDancerNetProse1995
![Page 21: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/21.jpg)
May 1995
ALPHA
![Page 22: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/22.jpg)
Jan 1996
![Page 23: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/23.jpg)
JDK 1
● safe & secure● distributed & robust● interpreted, garbage collected● multi-threaded● architecture neutral ● high performance Gosling’s goals for Java
1996
![Page 24: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/24.jpg)
Different implementations of Java
JRocket IcedTea ChaiVM Zing Dalvik
SAPJVM OJVM IKVM.NET Zulu CloudVM-for-Java Harmony JBuilder
Visual-Cafe Microsoft-JVM JavaOS
Java-Chip LLVM Visual-J++ Java CVM HotSpot J9 Classic-JVM
1995-2014
![Page 25: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/25.jpg)
Different implementations & misunderstanding
Sun-Microsoft misunderstanding
Java CVM HotSpot Microsoft-JVM
Visual-J++ Windows
Internet Explorer1997
![Page 26: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/26.jpg)
JDK 1.1
● inner classes f(x) = new Fun() { apply(x) { x * x }}
● JavaBeans● JDBC● RMI● reflection● JIT (Microsoft VM)
1997
![Page 27: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/27.jpg)
J2SE 1.2 (Playground)● Sun’s JIT virtual machine● Swing
● Collections
Joshua BlochDoug Lea
1998
![Page 28: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/28.jpg)
J2SE?
● Java 2 Platform, Standard Edition● Java 2 Platform, Enterprise Edition● Java 2 Platform, Micro Edition
1998
![Page 29: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/29.jpg)
J2SE 1.3 (Kestrel)
HotSpot2000
![Page 30: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/30.jpg)
J2SE 1.4 (Merlin)
● regular expressions● exception chaining● NIO
2002
![Page 31: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/31.jpg)
J2SE 5.0 (Tiger)
● generics● annotations● autoboxing● enums● varargs● for each● static imports
2004
![Page 32: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/32.jpg)
Philip Wadler Martin Odersky Gilad Bracha Dave Stoutamire
2004
![Page 33: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/33.jpg)
J2SE 5.0 - java.util.concurrent
● executors● concurrent collections● atomic variables● synchronisers● new lock variants
Doug LeaBrian Goetz2004
![Page 34: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/34.jpg)
JSE 6 (Mustang)
improvements & bug fixesperformance improvements
OpenJDK was partially released (javac, HotSpot)
2006
![Page 35: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/35.jpg)
Sun-Apache difficulty over TCK
2006
![Page 36: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/36.jpg)
OpenJDK was fully released (rest of the components)
2007
![Page 37: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/37.jpg)
2007-2010 NULL
(pausing, and thinking….)
![Page 38: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/38.jpg)
Java goes to Oracle
IBM willing to acquire Sun Oracle acquires Sun
Oracle adopts OpenJDK2010
![Page 39: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/39.jpg)
Another misunderstanding
Google vs Oracle misunderstandings
2010
![Page 40: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/40.jpg)
JSE 7 (Dolphin) 2011
● invokedynamic (JRuby, Groovy)● strings in switch, try-with-resources,
diamond operator (<>), multi-catch● ForkJoin
OpenJDK is the reference implementation
![Page 41: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/41.jpg)
OpenJDK history...2006 2007 2010 Beyond
Sun launches OpenJDK(javac, Hotspot)
Rest of OpenJDK
is released Oracle adopts OpenJDK(Sun is acquired)
Lambdas, Nashorn & Adopt OpenJDK
OpenJDK:Reference implementation of Java 7 SE
Java 10
Java 9
2011 2012 2014
Java 8
World-wide Community involvement
![Page 42: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/42.jpg)
LJC & other Java communities
London Java Community wins the Duke’s Choice award at JavaOne 2012, contributions through the the Adopt OpenJDK and Adopt-a-JSR programs lead to it!
LJC, SOUJava and other java communities world-wide collaborate to help improve Java!
![Page 43: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/43.jpg)
OpenJDK hackdays...London Java Community
organises hackdays every month, come along to contribute to the Java ecosystem.
Everyone is welcome, more details on LJC’s Meetup.com page
![Page 44: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/44.jpg)
Java 8 (unofficially Spider)
![Page 45: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/45.jpg)
Java 8 (unofficially Spider)
Date/Time API
![Page 46: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/46.jpg)
Java 8 (unofficially Spider)
Date/Time API
Money/Currency API
![Page 47: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/47.jpg)
Java 8 (unofficially Spider)
Date/Time API
Money/Currency API
off-heap objects
![Page 48: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/48.jpg)
Java 8 (unofficially Spider)
Date/Time API
Money/Currency API
off-heap objects
new JavaScript runtime
![Page 49: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/49.jpg)
Java 8 (unofficially Spider)
Date/Time API
Money/Currency API
off-heap objects
new JavaScript runtimeProject Nashorn
![Page 50: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/50.jpg)
Java 8 (unofficially Spider)
Date/Time API
Money/Currency API
off-heap objects
new JavaScript runtimeProject Nashorn
PermGen removed
annotations on Java type
Compact profiles
Generalized Target-Type Inference
![Page 51: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/51.jpg)
Java 8 (unofficially Spider)
Date/Time API
Money/Currency API
off-heap objects
new JavaScript runtimeProject Nashorn
PermGen removed
annotations on Java type
Compact profiles
Generalized Target-Type InferenceLambdas
![Page 52: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/52.jpg)
Source: Oracle, 2011
![Page 53: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/53.jpg)
Java touches our lives in many ways, we just may not
be aware of it, but Java is everywhere!
![Page 54: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/54.jpg)
Summary● About the creators● Early excitement & survivors● Difficulties & misunderstandings● Minor & major improvements● Open source & community activities
![Page 55: History of java](https://reader034.vdocuments.site/reader034/viewer/2022051610/548db4cbb47959820e8b46bd/html5/thumbnails/55.jpg)
Thanks to...
Feedback at @rafalwicha @theNeomatrix369
All the PEOPLE behind the inception & development of Java from its start.
LJC for supporting the Java spirit in London.
Gamesys and the organisers of this evening event!
But above all you, Java developers!