History of java

Post on 14-Dec-2014

49 views 0 download

Tags:

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

History of JavaFrom its inception till about now...

bit.ly/1e3yqGS

Who are we ?

Mani Sarkar @theNeomatrix369Rafal Wicha @rafalwicha

#historyofjavaparty

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!

Agenda

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

© James Gosling1990

Patrick Naughton

© James Gosling1990

Patrick Naughton

Scott McNealy

© James Gosling1990

Patrick Naughton

James Gosling

© James Gosling1990

© Google Maps1991

Menlo Park, California

Green Project

Duke here...

...and here

1992

The Internet

1993-95

Bill JoyEric Schmidt

1993-95

Marc Andreessen

1995

Marc Andreessen

1995

Marc Andreessen

1995

© Google Maps

Menlo Park, California

© Google Maps

Oak maybe?

Silk

DNA

WebDancerNetProse1995

Silk

DNA

WebDancerNetProse1995

Silk

DNA

WebDancerNetProse1995

May 1995

ALPHA

Jan 1996

JDK 1

● safe & secure● distributed & robust● interpreted, garbage collected● multi-threaded● architecture neutral ● high performance Gosling’s goals for Java

1996

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

Different implementations & misunderstanding

Sun-Microsoft misunderstanding

Java CVM HotSpot Microsoft-JVM

Visual-J++ Windows

Internet Explorer1997

JDK 1.1

● inner classes f(x) = new Fun() { apply(x) { x * x }}

● JavaBeans● JDBC● RMI● reflection● JIT (Microsoft VM)

1997

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

● Collections

Joshua BlochDoug Lea

1998

J2SE?

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

1998

J2SE 1.3 (Kestrel)

HotSpot2000

J2SE 1.4 (Merlin)

● regular expressions● exception chaining● NIO

2002

J2SE 5.0 (Tiger)

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

2004

Philip Wadler Martin Odersky Gilad Bracha Dave Stoutamire

2004

J2SE 5.0 - java.util.concurrent

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

Doug LeaBrian Goetz2004

JSE 6 (Mustang)

improvements & bug fixesperformance improvements

OpenJDK was partially released (javac, HotSpot)

2006

Sun-Apache difficulty over TCK

2006

OpenJDK was fully released (rest of the components)

2007

2007-2010 NULL

(pausing, and thinking….)

Java goes to Oracle

IBM willing to acquire Sun Oracle acquires Sun

Oracle adopts OpenJDK2010

Another misunderstanding

Google vs Oracle misunderstandings

2010

JSE 7 (Dolphin) 2011

● invokedynamic (JRuby, Groovy)● strings in switch, try-with-resources,

diamond operator (<>), multi-catch● ForkJoin

OpenJDK is the reference implementation

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

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!

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

Java 8 (unofficially Spider)

Java 8 (unofficially Spider)

Date/Time API

Java 8 (unofficially Spider)

Date/Time API

Money/Currency API

Java 8 (unofficially Spider)

Date/Time API

Money/Currency API

off-heap objects

Java 8 (unofficially Spider)

Date/Time API

Money/Currency API

off-heap objects

new JavaScript runtime

Java 8 (unofficially Spider)

Date/Time API

Money/Currency API

off-heap objects

new JavaScript runtimeProject Nashorn

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

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

Source: Oracle, 2011

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

be aware of it, but Java is everywhere!

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

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!