SlideShare a Scribd company logo
History of Java 
From its inception till about now... 
bit.ly/1e3yqGS
Who are we ? 
Mani Sarkar @theNeomatrix369 
Rafal Wicha @rafalwicha 
#historyofjavaparty
Disclaimer 
Ideas 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 Gosling 1990
Patrick Naughton 
© James Gosling 1990
Patrick Naughton 
Scott McNealy 
© James Gosling 1990
James Gosling 
Patrick Naughton 
© James Gosling 1990
Green Project 
Menlo Park, California 
© Google Maps 1991
Duke here... 
...and here 
1992
The Internet 
1993-95
Bill Joy 
1993-95 
Eric Schmidt
Marc Andreessen 
1995
Marc Andreessen 
1995
Marc Andreessen 
1995
© Google Maps 
Menlo Park, California
© Google Maps 
Oak maybe?
Silk 
DNA 
NetProse WebDancer 
1995
Silk 
DNA 
NetProse WebDancer 
1995
Silk 
DNA 
NetProse WebDancer 
1995
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 Explorer 
1997
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 Bloch 
Doug Lea 
1998
J2SE? 
● Java 2 Platform, Standard Edition 
● Java 2 Platform, Enterprise Edition 
● Java 2 Platform, Micro Edition 
1998
J2SE 1.3 (Kestrel) 
HotSpot 
2000
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 
2004 Brian Goetz Doug Lea
JSE 6 (Mustang) 
improvements & bug fixes 
performance 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 OpenJDK 
2010
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 
Rest of 
OpenJDK 
is released Oracle 
Sun 
launches 
OpenJDK 
(javac, 
Hotspot) 
adopts 
OpenJDK 
(Sun is 
acquired) 
2011 2012 2014 
Lambdas, 
Nashorn & 
Adopt 
OpenJDK 
OpenJDK: 
Reference 
implementation 
of Java 7 SE 
Java 10 
Java 8 
Java 9 
World-wide 
Community 
involvement
LJC & other Java communities 
LJC, SOUJava and other java communities world-wide collaborate to help improve Java! 
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!
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 runtime 
Project Nashorn
Java 8 (unofficially Spider) 
Date/Time API 
Money/Currency API 
off-heap objects 
new JavaScript runtime 
Project 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 runtime 
Project Nashorn 
PermGen removed 
annotations on Java type 
Compact profiles 
Generalized Target-Type 
Inference Lambdas
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... 
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! 
Feedback at @rafalwicha @theNeomatrix369

More Related Content

What's hot

The Evolution of Java
The Evolution of JavaThe Evolution of Java
The Evolution of Java
Corneil du Plessis
 
Java history 01
Java history 01Java history 01
Java history 01
University of Potsdam
 
Java Presentation
Java PresentationJava Presentation
Java Presentation
Amr Salah
 
Java introduction
Java introductionJava introduction
Java introduction
Kuppusamy P
 
Learn Java Part 1
Learn Java Part 1Learn Java Part 1
Learn Java Part 1
Gurpreet singh
 
A begineers guide of JAVA - Getting Started
 A begineers guide of JAVA - Getting Started A begineers guide of JAVA - Getting Started
A begineers guide of JAVA - Getting StartedRakesh Madugula
 
Evolution of java By Abbas khan
Evolution of java   By Abbas khan Evolution of java   By Abbas khan
Evolution of java By Abbas khan
Tatireddy Rajeevreddy
 
The Java Story
The Java StoryThe Java Story
The Java Story
David Parsons
 
Java and Java platforms
Java and Java platformsJava and Java platforms
Java and Java platforms
Ilio Catallo
 
Introduction to Java
Introduction to JavaIntroduction to Java
Introduction to Java
Professional Guru
 
Presentation on Core java
Presentation on Core javaPresentation on Core java
Presentation on Core java
mahir jain
 
Java JVM
Java JVMJava JVM
02 java programming features of java i
02 java programming features of java  i02 java programming features of java  i
02 java programming features of java i
Ravi Patki
 
J2EE Struts with Hibernate Framework
J2EE Struts with Hibernate FrameworkJ2EE Struts with Hibernate Framework
J2EE Struts with Hibernate Framework
mparth
 

What's hot (20)

The Evolution of Java
The Evolution of JavaThe Evolution of Java
The Evolution of Java
 
Java history 01
Java history 01Java history 01
Java history 01
 
Java Presentation
Java PresentationJava Presentation
Java Presentation
 
Java features
Java featuresJava features
Java features
 
Java introduction
Java introductionJava introduction
Java introduction
 
Evolution Of Java
Evolution Of JavaEvolution Of Java
Evolution Of Java
 
Evolution of java
Evolution of javaEvolution of java
Evolution of java
 
Learn Java Part 1
Learn Java Part 1Learn Java Part 1
Learn Java Part 1
 
A begineers guide of JAVA - Getting Started
 A begineers guide of JAVA - Getting Started A begineers guide of JAVA - Getting Started
A begineers guide of JAVA - Getting Started
 
Evolution of java By Abbas khan
Evolution of java   By Abbas khan Evolution of java   By Abbas khan
Evolution of java By Abbas khan
 
History of java'
History of java'History of java'
History of java'
 
The Java Story
The Java StoryThe Java Story
The Java Story
 
Java and Java platforms
Java and Java platformsJava and Java platforms
Java and Java platforms
 
Introduction to Java
Introduction to JavaIntroduction to Java
Introduction to Java
 
Presentation on Core java
Presentation on Core javaPresentation on Core java
Presentation on Core java
 
Lec 3 01_aug13
Lec 3 01_aug13Lec 3 01_aug13
Lec 3 01_aug13
 
Java JVM
Java JVMJava JVM
Java JVM
 
Features of java
Features of javaFeatures of java
Features of java
 
02 java programming features of java i
02 java programming features of java  i02 java programming features of java  i
02 java programming features of java i
 
J2EE Struts with Hibernate Framework
J2EE Struts with Hibernate FrameworkJ2EE Struts with Hibernate Framework
J2EE Struts with Hibernate Framework
 

Similar to History of java

Java: Rumours of my demise are greatly exaggerated
Java: Rumours of my demise are greatly exaggeratedJava: Rumours of my demise are greatly exaggerated
Java: Rumours of my demise are greatly exaggerated
Steve Dalton
 
Kaunas JUG#1: Java History and Trends (Dainius Mezanskas)
Kaunas JUG#1: Java History and Trends (Dainius Mezanskas)Kaunas JUG#1: Java History and Trends (Dainius Mezanskas)
Kaunas JUG#1: Java History and Trends (Dainius Mezanskas)Kaunas Java User Group
 
Java History and Trends
Java History and TrendsJava History and Trends
Java History and Trends
Dainius Mezanskas
 
Java 8-streams-and-parallelism
Java 8-streams-and-parallelismJava 8-streams-and-parallelism
Java 8-streams-and-parallelism
Deepak Shevani
 
Join the Java Evolution GIDS Bangalore & Pune
Join the Java Evolution GIDS Bangalore & PuneJoin the Java Evolution GIDS Bangalore & Pune
Join the Java Evolution GIDS Bangalore & Pune
Heather VanCura
 
Jozi-JUG JDK 9 Unconference
Jozi-JUG JDK 9 UnconferenceJozi-JUG JDK 9 Unconference
Jozi-JUG JDK 9 Unconference
Heather VanCura
 
Join the Java Evolution Portland Oregon
Join the Java Evolution Portland OregonJoin the Java Evolution Portland Oregon
Join the Java Evolution Portland Oregon
Heather VanCura
 
Kubernetes Native Java and Eclipse MicroProfile | EclipseCon Europe 2019
Kubernetes Native Java and Eclipse MicroProfile | EclipseCon Europe 2019Kubernetes Native Java and Eclipse MicroProfile | EclipseCon Europe 2019
Kubernetes Native Java and Eclipse MicroProfile | EclipseCon Europe 2019
Jakarta_EE
 
Kubernetes Native Java and Eclipse MicroProfile | EclipseCon Europe 2019
Kubernetes Native Java and Eclipse MicroProfile | EclipseCon Europe 2019Kubernetes Native Java and Eclipse MicroProfile | EclipseCon Europe 2019
Kubernetes Native Java and Eclipse MicroProfile | EclipseCon Europe 2019
The Eclipse Foundation
 
Adopt OpenJDK the past, the present & the future
Adopt OpenJDK  the past, the present & the futureAdopt OpenJDK  the past, the present & the future
Adopt OpenJDK the past, the present & the future
Mani Sarkar
 
The brave new world of Java
The brave new world of JavaThe brave new world of Java
The brave new world of Java
PolyglotMeetups
 
Chapter 1. java programming language overview
Chapter 1. java programming language overviewChapter 1. java programming language overview
Chapter 1. java programming language overviewJong Soon Bok
 
Adopt OpenJDK presentation (slide deck)
Adopt OpenJDK presentation (slide deck)Adopt OpenJDK presentation (slide deck)
Adopt OpenJDK presentation (slide deck)
Mani Sarkar
 
Open Source가 바꾼 자바
Open Source가 바꾼 자바Open Source가 바꾼 자바
Open Source가 바꾼 자바
Sungchul Park
 
Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes
Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themesJava 8 Launch Event - Past, Present and Future of Java and Java 8 key themes
Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes
Lucas Jellema
 
Join the Java Evolution Columbus Ohio
Join the Java Evolution Columbus OhioJoin the Java Evolution Columbus Ohio
Join the Java Evolution Columbus Ohio
Heather VanCura
 
Object Oriented Programming-JAVA
Object Oriented Programming-JAVAObject Oriented Programming-JAVA
Object Oriented Programming-JAVA
Home
 
Java8 launch AMIS Services by Lucas Jellema
Java8 launch AMIS Services by Lucas Jellema Java8 launch AMIS Services by Lucas Jellema
Java8 launch AMIS Services by Lucas Jellema
Getting value from IoT, Integration and Data Analytics
 

Similar to History of java (20)

Java: Rumours of my demise are greatly exaggerated
Java: Rumours of my demise are greatly exaggeratedJava: Rumours of my demise are greatly exaggerated
Java: Rumours of my demise are greatly exaggerated
 
Kaunas JUG#1: Java History and Trends (Dainius Mezanskas)
Kaunas JUG#1: Java History and Trends (Dainius Mezanskas)Kaunas JUG#1: Java History and Trends (Dainius Mezanskas)
Kaunas JUG#1: Java History and Trends (Dainius Mezanskas)
 
Java History and Trends
Java History and TrendsJava History and Trends
Java History and Trends
 
Java 8-streams-and-parallelism
Java 8-streams-and-parallelismJava 8-streams-and-parallelism
Java 8-streams-and-parallelism
 
Join the Java Evolution GIDS Bangalore & Pune
Join the Java Evolution GIDS Bangalore & PuneJoin the Java Evolution GIDS Bangalore & Pune
Join the Java Evolution GIDS Bangalore & Pune
 
Jozi-JUG JDK 9 Unconference
Jozi-JUG JDK 9 UnconferenceJozi-JUG JDK 9 Unconference
Jozi-JUG JDK 9 Unconference
 
Join the Java Evolution Portland Oregon
Join the Java Evolution Portland OregonJoin the Java Evolution Portland Oregon
Join the Java Evolution Portland Oregon
 
Kubernetes Native Java and Eclipse MicroProfile | EclipseCon Europe 2019
Kubernetes Native Java and Eclipse MicroProfile | EclipseCon Europe 2019Kubernetes Native Java and Eclipse MicroProfile | EclipseCon Europe 2019
Kubernetes Native Java and Eclipse MicroProfile | EclipseCon Europe 2019
 
Kubernetes Native Java and Eclipse MicroProfile | EclipseCon Europe 2019
Kubernetes Native Java and Eclipse MicroProfile | EclipseCon Europe 2019Kubernetes Native Java and Eclipse MicroProfile | EclipseCon Europe 2019
Kubernetes Native Java and Eclipse MicroProfile | EclipseCon Europe 2019
 
Retour JavaOne 2009
Retour JavaOne 2009Retour JavaOne 2009
Retour JavaOne 2009
 
Adopt OpenJDK the past, the present & the future
Adopt OpenJDK  the past, the present & the futureAdopt OpenJDK  the past, the present & the future
Adopt OpenJDK the past, the present & the future
 
The brave new world of Java
The brave new world of JavaThe brave new world of Java
The brave new world of Java
 
Chapter 1. java programming language overview
Chapter 1. java programming language overviewChapter 1. java programming language overview
Chapter 1. java programming language overview
 
Adopt OpenJDK presentation (slide deck)
Adopt OpenJDK presentation (slide deck)Adopt OpenJDK presentation (slide deck)
Adopt OpenJDK presentation (slide deck)
 
Open Source가 바꾼 자바
Open Source가 바꾼 자바Open Source가 바꾼 자바
Open Source가 바꾼 자바
 
Java8 launch at AMIS Services / First8
Java8 launch at AMIS Services / First8Java8 launch at AMIS Services / First8
Java8 launch at AMIS Services / First8
 
Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes
Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themesJava 8 Launch Event - Past, Present and Future of Java and Java 8 key themes
Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes
 
Join the Java Evolution Columbus Ohio
Join the Java Evolution Columbus OhioJoin the Java Evolution Columbus Ohio
Join the Java Evolution Columbus Ohio
 
Object Oriented Programming-JAVA
Object Oriented Programming-JAVAObject Oriented Programming-JAVA
Object Oriented Programming-JAVA
 
Java8 launch AMIS Services by Lucas Jellema
Java8 launch AMIS Services by Lucas Jellema Java8 launch AMIS Services by Lucas Jellema
Java8 launch AMIS Services by Lucas Jellema
 

More from Mani Sarkar

How to contribute to Adopt OpenJDK?
How to contribute to Adopt OpenJDK?How to contribute to Adopt OpenJDK?
How to contribute to Adopt OpenJDK?
Mani Sarkar
 
Java 9 / Jigsaw - AJUG/VJUG session
Java 9 / Jigsaw - AJUG/VJUG  sessionJava 9 / Jigsaw - AJUG/VJUG  session
Java 9 / Jigsaw - AJUG/VJUG session
Mani Sarkar
 
Java 9 / Jigsaw - LJC / VJUG session (hackday session)
Java 9 / Jigsaw - LJC / VJUG session (hackday session)Java 9 / Jigsaw - LJC / VJUG session (hackday session)
Java 9 / Jigsaw - LJC / VJUG session (hackday session)
Mani Sarkar
 
Cli in the browser
Cli in the browserCli in the browser
Cli in the browser
Mani Sarkar
 
Theory of constraints
Theory of constraintsTheory of constraints
Theory of constraints
Mani Sarkar
 
Kanban kata
Kanban kataKanban kata
Kanban kata
Mani Sarkar
 
Refactoring developer habits
Refactoring developer habitsRefactoring developer habits
Refactoring developer habits
Mani Sarkar
 
Essential technical skills
Essential technical skillsEssential technical skills
Essential technical skills
Mani Sarkar
 
How is Java / JVM built ? Back then and now...
How is Java / JVM built ? Back then and now...How is Java / JVM built ? Back then and now...
How is Java / JVM built ? Back then and now...
Mani Sarkar
 
How is Java / JVM built ? Adopt OpenJDK is your answer !
How is Java / JVM built ? Adopt OpenJDK is your answer !How is Java / JVM built ? Adopt OpenJDK is your answer !
How is Java / JVM built ? Adopt OpenJDK is your answer !
Mani Sarkar
 
Adopt OpenJDK, Betterrev blind ignite presentation
Adopt OpenJDK, Betterrev blind ignite presentationAdopt OpenJDK, Betterrev blind ignite presentation
Adopt OpenJDK, Betterrev blind ignite presentation
Mani Sarkar
 
Fosdem2014 fromwebrevtobetterrevbryantsarkar-140203131215-phpapp02
Fosdem2014 fromwebrevtobetterrevbryantsarkar-140203131215-phpapp02Fosdem2014 fromwebrevtobetterrevbryantsarkar-140203131215-phpapp02
Fosdem2014 fromwebrevtobetterrevbryantsarkar-140203131215-phpapp02
Mani Sarkar
 
Java2 days 2013-lambda
Java2 days 2013-lambdaJava2 days 2013-lambda
Java2 days 2013-lambda
Mani Sarkar
 
Ljc conf open jdk betterrev bof
Ljc conf open jdk betterrev bofLjc conf open jdk betterrev bof
Ljc conf open jdk betterrev bof
Mani Sarkar
 
Sonar qube to impove code quality
Sonar qube   to impove code qualitySonar qube   to impove code quality
Sonar qube to impove code quality
Mani Sarkar
 
Java2 days 2013-j-treg
Java2 days 2013-j-tregJava2 days 2013-j-treg
Java2 days 2013-j-treg
Mani Sarkar
 
Leaning on the two Ts
Leaning on the two TsLeaning on the two Ts
Leaning on the two Ts
Mani Sarkar
 

More from Mani Sarkar (17)

How to contribute to Adopt OpenJDK?
How to contribute to Adopt OpenJDK?How to contribute to Adopt OpenJDK?
How to contribute to Adopt OpenJDK?
 
Java 9 / Jigsaw - AJUG/VJUG session
Java 9 / Jigsaw - AJUG/VJUG  sessionJava 9 / Jigsaw - AJUG/VJUG  session
Java 9 / Jigsaw - AJUG/VJUG session
 
Java 9 / Jigsaw - LJC / VJUG session (hackday session)
Java 9 / Jigsaw - LJC / VJUG session (hackday session)Java 9 / Jigsaw - LJC / VJUG session (hackday session)
Java 9 / Jigsaw - LJC / VJUG session (hackday session)
 
Cli in the browser
Cli in the browserCli in the browser
Cli in the browser
 
Theory of constraints
Theory of constraintsTheory of constraints
Theory of constraints
 
Kanban kata
Kanban kataKanban kata
Kanban kata
 
Refactoring developer habits
Refactoring developer habitsRefactoring developer habits
Refactoring developer habits
 
Essential technical skills
Essential technical skillsEssential technical skills
Essential technical skills
 
How is Java / JVM built ? Back then and now...
How is Java / JVM built ? Back then and now...How is Java / JVM built ? Back then and now...
How is Java / JVM built ? Back then and now...
 
How is Java / JVM built ? Adopt OpenJDK is your answer !
How is Java / JVM built ? Adopt OpenJDK is your answer !How is Java / JVM built ? Adopt OpenJDK is your answer !
How is Java / JVM built ? Adopt OpenJDK is your answer !
 
Adopt OpenJDK, Betterrev blind ignite presentation
Adopt OpenJDK, Betterrev blind ignite presentationAdopt OpenJDK, Betterrev blind ignite presentation
Adopt OpenJDK, Betterrev blind ignite presentation
 
Fosdem2014 fromwebrevtobetterrevbryantsarkar-140203131215-phpapp02
Fosdem2014 fromwebrevtobetterrevbryantsarkar-140203131215-phpapp02Fosdem2014 fromwebrevtobetterrevbryantsarkar-140203131215-phpapp02
Fosdem2014 fromwebrevtobetterrevbryantsarkar-140203131215-phpapp02
 
Java2 days 2013-lambda
Java2 days 2013-lambdaJava2 days 2013-lambda
Java2 days 2013-lambda
 
Ljc conf open jdk betterrev bof
Ljc conf open jdk betterrev bofLjc conf open jdk betterrev bof
Ljc conf open jdk betterrev bof
 
Sonar qube to impove code quality
Sonar qube   to impove code qualitySonar qube   to impove code quality
Sonar qube to impove code quality
 
Java2 days 2013-j-treg
Java2 days 2013-j-tregJava2 days 2013-j-treg
Java2 days 2013-j-treg
 
Leaning on the two Ts
Leaning on the two TsLeaning on the two Ts
Leaning on the two Ts
 

Recently uploaded

Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
ShamsuddeenMuhammadA
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
abdulrafaychaudhry
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
Nidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, TipsNidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, Tips
vrstrong314
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
Game Development with Unity3D (Game Development lecture 3)
Game Development  with Unity3D (Game Development lecture 3)Game Development  with Unity3D (Game Development lecture 3)
Game Development with Unity3D (Game Development lecture 3)
abdulrafaychaudhry
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
abdulrafaychaudhry
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 

Recently uploaded (20)

Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
Nidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, TipsNidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, Tips
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
Game Development with Unity3D (Game Development lecture 3)
Game Development  with Unity3D (Game Development lecture 3)Game Development  with Unity3D (Game Development lecture 3)
Game Development with Unity3D (Game Development lecture 3)
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 

History of java

  • 1. History of Java From its inception till about now... bit.ly/1e3yqGS
  • 2. Who are we ? Mani Sarkar @theNeomatrix369 Rafal Wicha @rafalwicha #historyofjavaparty
  • 3. Disclaimer Ideas 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!
  • 4. Agenda ● Java roots ● Platform evolution ● Open source ● People!
  • 6. Patrick Naughton © James Gosling 1990
  • 7. Patrick Naughton Scott McNealy © James Gosling 1990
  • 8. James Gosling Patrick Naughton © James Gosling 1990
  • 9. Green Project Menlo Park, California © Google Maps 1991
  • 10. Duke here... ...and here 1992
  • 12. Bill Joy 1993-95 Eric Schmidt
  • 16. © Google Maps Menlo Park, California
  • 17. © Google Maps Oak maybe?
  • 18. Silk DNA NetProse WebDancer 1995
  • 19. Silk DNA NetProse WebDancer 1995
  • 20. Silk DNA NetProse WebDancer 1995
  • 23. JDK 1 ● safe & secure ● distributed & robust ● interpreted, garbage collected ● multi-threaded ● architecture neutral ● high performance Gosling’s goals for Java 1996
  • 24. 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
  • 25. Different implementations & misunderstanding Sun-Microsoft misunderstanding Java CVM HotSpot Microsoft-JVM Visual-J++ Windows Internet Explorer 1997
  • 26. JDK 1.1 ● inner classes f(x) = new Fun() { apply(x) { x * x }} ● JavaBeans ● JDBC ● RMI ● reflection ● JIT (Microsoft VM) 1997
  • 27. J2SE 1.2 (Playground) ● Sun’s JIT virtual machine ● Swing ● Collections Joshua Bloch Doug Lea 1998
  • 28. J2SE? ● Java 2 Platform, Standard Edition ● Java 2 Platform, Enterprise Edition ● Java 2 Platform, Micro Edition 1998
  • 29. J2SE 1.3 (Kestrel) HotSpot 2000
  • 30. J2SE 1.4 (Merlin) ● regular expressions ● exception chaining ● NIO 2002
  • 31. J2SE 5.0 (Tiger) ● generics ● annotations ● autoboxing ● enums ● varargs ● for each ● static imports 2004
  • 32. Philip Wadler Martin Odersky Gilad Bracha Dave Stoutamire 2004
  • 33. J2SE 5.0 - java.util.concurrent ● executors ● concurrent collections ● atomic variables ● synchronisers ● new lock variants 2004 Brian Goetz Doug Lea
  • 34. JSE 6 (Mustang) improvements & bug fixes performance improvements OpenJDK was partially released (javac, HotSpot) 2006
  • 36. OpenJDK was fully released (rest of the components) 2007
  • 37. 2007-2010 NULL (pausing, and thinking….)
  • 38. Java goes to Oracle IBM willing to acquire Sun Oracle acquires Sun Oracle adopts OpenJDK 2010
  • 39. Another misunderstanding Google vs Oracle misunderstandings 2010
  • 40. JSE 7 (Dolphin) 2011 ● invokedynamic (JRuby, Groovy) ● strings in switch, try-with-resources, diamond operator (<>), multi-catch ● ForkJoin OpenJDK is the reference implementation
  • 41. OpenJDK history... 2006 2007 2010 Beyond Rest of OpenJDK is released Oracle Sun launches OpenJDK (javac, Hotspot) adopts OpenJDK (Sun is acquired) 2011 2012 2014 Lambdas, Nashorn & Adopt OpenJDK OpenJDK: Reference implementation of Java 7 SE Java 10 Java 8 Java 9 World-wide Community involvement
  • 42. LJC & other Java communities LJC, SOUJava and other java communities world-wide collaborate to help improve Java! 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!
  • 43. 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
  • 45. Java 8 (unofficially Spider) Date/Time API
  • 46. Java 8 (unofficially Spider) Date/Time API Money/Currency API
  • 47. Java 8 (unofficially Spider) Date/Time API Money/Currency API off-heap objects
  • 48. Java 8 (unofficially Spider) Date/Time API Money/Currency API off-heap objects new JavaScript runtime
  • 49. Java 8 (unofficially Spider) Date/Time API Money/Currency API off-heap objects new JavaScript runtime Project Nashorn
  • 50. Java 8 (unofficially Spider) Date/Time API Money/Currency API off-heap objects new JavaScript runtime Project Nashorn PermGen removed annotations on Java type Compact profiles Generalized Target-Type Inference
  • 51. Java 8 (unofficially Spider) Date/Time API Money/Currency API off-heap objects new JavaScript runtime Project Nashorn PermGen removed annotations on Java type Compact profiles Generalized Target-Type Inference Lambdas
  • 53. Java touches our lives in many ways, we just may not be aware of it, but Java is everywhere!
  • 54. Summary ● About the creators ● Early excitement & survivors ● Difficulties & misunderstandings ● Minor & major improvements ● Open source & community activities
  • 55. Thanks to... 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! Feedback at @rafalwicha @theNeomatrix369