History of java

55
History of Java From its inception till about now... bit.ly/1e3yqGS

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 of History of java

Page 1: History of java

History of JavaFrom its inception till about now...

bit.ly/1e3yqGS

Page 2: History of java

Who are we ?

Mani Sarkar @theNeomatrix369Rafal Wicha @rafalwicha

#historyofjavaparty

Page 3: History of java

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

Agenda

● Java roots ● Platform evolution● Open source● People!

Page 5: History of java

© James Gosling1990

Page 6: History of java

Patrick Naughton

© James Gosling1990

Page 7: History of java

Patrick Naughton

Scott McNealy

© James Gosling1990

Page 8: History of java

Patrick Naughton

James Gosling

© James Gosling1990

Page 9: History of java

© Google Maps1991

Menlo Park, California

Green Project

Page 10: History of java

Duke here...

...and here

1992

Page 11: History of java

The Internet

1993-95

Page 12: History of java

Bill JoyEric Schmidt

1993-95

Page 13: History of java

Marc Andreessen

1995

Page 14: History of java

Marc Andreessen

1995

Page 15: History of java

Marc Andreessen

1995

Page 16: History of java

© Google Maps

Menlo Park, California

Page 17: History of java

© Google Maps

Oak maybe?

Page 18: History of java

Silk

DNA

WebDancerNetProse1995

Page 19: History of java

Silk

DNA

WebDancerNetProse1995

Page 20: History of java

Silk

DNA

WebDancerNetProse1995

Page 21: History of java

May 1995

ALPHA

Page 22: History of java

Jan 1996

Page 23: History of java

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

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

Different implementations & misunderstanding

Sun-Microsoft misunderstanding

Java CVM HotSpot Microsoft-JVM

Visual-J++ Windows

Internet Explorer1997

Page 26: History of java

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

J2SE 1.2 (Playground)● Sun’s JIT virtual machine● Swing

● Collections

Joshua BlochDoug Lea

1998

Page 28: History of java

J2SE?

● Java 2 Platform, Standard Edition● Java 2 Platform, Enterprise Edition● Java 2 Platform, Micro Edition

1998

Page 29: History of java

J2SE 1.3 (Kestrel)

HotSpot2000

Page 30: History of java

J2SE 1.4 (Merlin)

● regular expressions● exception chaining● NIO

2002

Page 31: History of java

J2SE 5.0 (Tiger)

● generics● annotations● autoboxing● enums● varargs● for each● static imports

2004

Page 32: History of java

Philip Wadler Martin Odersky Gilad Bracha Dave Stoutamire

2004

Page 33: History of java

J2SE 5.0 - java.util.concurrent

● executors● concurrent collections● atomic variables● synchronisers● new lock variants

Doug LeaBrian Goetz2004

Page 34: History of java

JSE 6 (Mustang)

improvements & bug fixesperformance improvements

OpenJDK was partially released (javac, HotSpot)

2006

Page 35: History of java

Sun-Apache difficulty over TCK

2006

Page 36: History of java

OpenJDK was fully released (rest of the components)

2007

Page 37: History of java

2007-2010 NULL

(pausing, and thinking….)

Page 38: History of java

Java goes to Oracle

IBM willing to acquire Sun Oracle acquires Sun

Oracle adopts OpenJDK2010

Page 39: History of java

Another misunderstanding

Google vs Oracle misunderstandings

2010

Page 40: History of java

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

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

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

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

Java 8 (unofficially Spider)

Page 45: History of java

Java 8 (unofficially Spider)

Date/Time API

Page 46: History of java

Java 8 (unofficially Spider)

Date/Time API

Money/Currency API

Page 47: History of java

Java 8 (unofficially Spider)

Date/Time API

Money/Currency API

off-heap objects

Page 48: History of java

Java 8 (unofficially Spider)

Date/Time API

Money/Currency API

off-heap objects

new JavaScript runtime

Page 49: History of java

Java 8 (unofficially Spider)

Date/Time API

Money/Currency API

off-heap objects

new JavaScript runtimeProject Nashorn

Page 50: History of java

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

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

Source: Oracle, 2011

Page 53: History of java

Java touches our lives in many ways, we just may not

be aware of it, but Java is everywhere!

Page 54: History of java

Summary● About the creators● Early excitement & survivors● Difficulties & misunderstandings● Minor & major improvements● Open source & community activities

Page 55: History of java

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!