SlideShare a Scribd company logo
1 of 53
The Evolution of Java
Fu Cheng
Author of Understanding the Java 7 Author of 40+ technical articles on
We talk about ...
Java is …
A Programming Language
Just like C/C++, Ruby, Python and many others
Java is ...
A Programming Platform
Language + Libraries + VM
Java is ...
Popular
Java is ...
http://en.wikipedia.org/wiki/History_of_programming_languages
Old - maybe not old enough
Java is ...
Object-Oriented
Nearly everything is a object
Java is ...
Easy to learn
Java is ...
(Maybe) too easy to learn
The Perils of JavaSchools
by Joel Spolsky
Java is not, generally, a hard enough
programming language that it can be
used to discriminate between great
programmers and mediocre programmers.
Java is …
JDK 1.0
1996 1997 1998 2004 20062000 2002 2011
JDK 1.1
J2SE 1.2
J2SE 1.3
J2SE 1.4
J2SE 5.0
Java SE 6
Java SE 7
http://en.wikipedia.org/wiki/Java_(programming_language)#Versions
Slowly evolving
Java has ...
Strong Platform Medium language
Weak core libraries
Popular Platform
• Desktop
– 850M PCs, 2011
• Mobile
– Android
– Java ME
• Enterprise
– LinkedIn
– Ebay
– Paypal
– AOL
– Alibaba
– Netflix
http://w3techs.com/technologies/details/pl-java/all/all
JVM
• Shield applications from OS layer details
– Threading using java.lang.Thread
• Provide runtime support for applications
– Basic types and operators
– Object model
– Unicode support
– Dynamic linkage
– Garbage collection
– Memory model
– Access control
Java Language
• Static typed
• Strict & rigid syntax
It's hard to say language X is better than language Y.
Use the right tool.
Java is good for ...
Big Teams Long-term projects
The key is maintainability.
Code readability
Find good developers
High-profile projects
Core Libraries
• Java core libraries are weak
– Collections
– IO
– Date/Time
• Rely on communities
– Apache Commons XXX
• Problems
– Version conflicts
– Jar hell
– Dependency management
http://www.slideshare.net/vishnu/the-top-10-reasons-the-ruby-programming-language-sucks
The Top 10 Reasons The Ruby Programming Language Sucks
-Matz
See Ruby
Why Java Succeeded
Compile Once, Run Anywhere
Java Source Code
(.java)
Java Byte Code
(.class)Compile
Java Compiler
JVM
Win *Nix Mac
Java Language
Specification
JVM
Specification
Run
Class loader
• Java's true invention
• Load code from remote
and execute locally
• Core technique behind
Java Applet
• Java applet boosted
Java’s spreading in dot
com age
NASA World Wind applet
How Java Evolves
Java Community Process
OpenJDK
+
Java Community Process
Develop standard technical specifications for Java
technology
Java Specification Request (JSR) - Changes to make
http://jcp.org/en/procedures/overview
Member
Executive Committee
(EC)
- Individuals
- Companies
- Organizations
- Major stakeholders
- Representative cross-section of
the Java Community
JSRs
Game of big players
Eclipse Foundation
HP
IBM
Intel
Nokia
Oracle
Red Hat
SAP
Twitter
and more ...
submit approve
OpenJDK
• Open-source implemenation of Java SE
• Reference implementation of JCP JSRs
• Base of other Java SE implementations
• Oracle collaboration with Red Hat, IBM, Apple, and
SAP
What Happened Behind Java SE 7 JSR
JSR 336 JavaTMSE7ReleaseContents
Final Approval Ballot
http://jcp.org/en/jsr/results?id=5225
Those Voted 'Yes' Said ...
http://jcp.org/en/jsr/results?id=5225
Licensing Terms of TCK
• Technology Compatibility Kit (TCK) is used to test
compatibility of Java implementation.
• Oracle only wants to license the use of TCK in the OpenJDK
context
• Apache Software Foundation, Doug Lea and Tim Peierls
resigned from JCP EC in protest over this issue.
– Apache Harmony Project - retried already
Oracle ... has essentially turned the JCP
into a rubber-stamp organization for Java SE 7
Alex Handy
Evolution Areas of Java
Productivity Performance Modularization
Productivity
Averaging over the lifetime of the project, a programmer
spends about 10-20% of his time writing code, and most
programmers write about 10-12 lines of code per day that
goes into the final product, regardless of their skill level.
http://automagical.rationalmind.net/2010/08/17/some-lesser-known-truths-about-programming/
http://www.codinghorror.com/blog/2005/08/are-all-programming-languages-the-same.html
Lines of Code
Java is improving
• Java SE 5
– Enhanced for loop
• Java SE 7
– try-with-resources
– Diamond operator
• Java SE 8
– List & Map literals
– Lambda expressions
Example of lambda expression
http://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html
Performance
Java is NOT slow
Benchmark Result 1
http://blog.cfelde.com/2010/06/c-vs-java-performance/
Benchmark Result 2
http://readwrite.com/2011/06/06/cpp-go-java-scala-performance-benchmark
Most of the performance issues are caused by
programming errors
•Bad algorithms
•Careless memory usage
•I/O operations
•Threading issues, dead lock
Java is improving
• Performance was not good prior to Java 1.3
• Performance improved since HotSpot was
introduced in Java 1.3
• Each Java release has performance
improvements
JVM in OpenJDK = HotSpot + JRockit
Modularization
Why you need Swing library for an application server?
Project Jigsaw
Design and implement a
standard module system for the
Java SE platform, and to apply
that system to the platform itself
and to the JDK
http://openjdk.java.net/projects/jigsaw/
JVM Languages
Rise of Dynamic JVM Languages
And more ...
https://en.wikipedia.org/wiki/List_of_JVM_languages
Source code Java byte code
JVM
Compile
Run
Jython
JRuby
Groovy
Scala
Clojure
...
the Da Vinci Machine Project
Extend the JVM with first-
class architectural
support for languages
other than Java,
especially dynamic
languages.
http://openjdk.java.net/projects/mlvm/
Meet 'invokedynamic'
• A new JVM instruction introduced in JSR 292
for Java SE 7
• Allow extremely fast dynamic invocation
through method handles
• Improve performance of dynamic JVM
languages
http://jcp.org/en/jsr/detail?id=292
Polyglot and poly-paradigm
programming
Use the right language to solve problems in different
components
http://polyglotprogramming.com/papers/PolyglotPolyParadigm.pdf
Core business logic
Admin tasks
Web development
Concurrent programming
What should Java developers do?
Learn more about Java platform
Learn more JVM internals, class loading, byte code spec, etc.
Keep an eye on Java language
Use new features and enhancements to increase productivity
Embrace dynamic JVM languages
Learn new dynamic JVM languages to make your life easier
Java may not be a good programming language
Java platform is a good platform to work on
It’s evolving slowly
AND
BUT

More Related Content

What's hot

Classes, objects in JAVA
Classes, objects in JAVAClasses, objects in JAVA
Classes, objects in JAVA
Abhilash Nair
 

What's hot (20)

Java Introduction
Java IntroductionJava Introduction
Java Introduction
 
Important features of java
Important features of javaImportant features of java
Important features of java
 
Introduction to JAVA
Introduction to JAVAIntroduction to JAVA
Introduction to JAVA
 
Java Server Pages(jsp)
Java Server Pages(jsp)Java Server Pages(jsp)
Java Server Pages(jsp)
 
Java History
Java HistoryJava History
Java History
 
Java tutorial PPT
Java tutorial PPTJava tutorial PPT
Java tutorial PPT
 
Introduction to Java -unit-1
Introduction to Java -unit-1Introduction to Java -unit-1
Introduction to Java -unit-1
 
Core java slides
Core java slidesCore java slides
Core java slides
 
Presentation on-exception-handling
Presentation on-exception-handlingPresentation on-exception-handling
Presentation on-exception-handling
 
Introduction to class in java
Introduction to class in javaIntroduction to class in java
Introduction to class in java
 
Introduction to basics of java
Introduction to basics of javaIntroduction to basics of java
Introduction to basics of java
 
Basic of Java
Basic of JavaBasic of Java
Basic of Java
 
Agile software development
Agile software developmentAgile software development
Agile software development
 
Introduction to Java Programming, Basic Structure, variables Data type, input...
Introduction to Java Programming, Basic Structure, variables Data type, input...Introduction to Java Programming, Basic Structure, variables Data type, input...
Introduction to Java Programming, Basic Structure, variables Data type, input...
 
Classes, objects in JAVA
Classes, objects in JAVAClasses, objects in JAVA
Classes, objects in JAVA
 
Introduction to Java Programming
Introduction to Java ProgrammingIntroduction to Java Programming
Introduction to Java Programming
 
Java Presentation
Java PresentationJava Presentation
Java Presentation
 
Methods in Java
Methods in JavaMethods in Java
Methods in Java
 
Introduction To Java.
Introduction To Java.Introduction To Java.
Introduction To Java.
 
Java basic introduction
Java basic introductionJava basic introduction
Java basic introduction
 

Similar to The Evolution of Java

JAVA_Day1_BasicIntroduction.pptx
JAVA_Day1_BasicIntroduction.pptxJAVA_Day1_BasicIntroduction.pptx
JAVA_Day1_BasicIntroduction.pptx
Murugesh33
 
1java Introduction
1java Introduction1java Introduction
1java Introduction
Adil Jafri
 
Java chapter 1 basic introduction Unit-1.pptx
Java chapter  1 basic introduction Unit-1.pptxJava chapter  1 basic introduction Unit-1.pptx
Java chapter 1 basic introduction Unit-1.pptx
noosdysharma
 

Similar to The Evolution of Java (20)

Java Basics
Java BasicsJava Basics
Java Basics
 
Java platform
Java platformJava platform
Java platform
 
Lecture-01 _Java Introduction CS 441 Fast
Lecture-01 _Java Introduction CS 441 FastLecture-01 _Java Introduction CS 441 Fast
Lecture-01 _Java Introduction CS 441 Fast
 
01. Introduction to programming with java
01. Introduction to programming with java01. Introduction to programming with java
01. Introduction to programming with java
 
JAVA_Day1_BasicIntroduction.pptx
JAVA_Day1_BasicIntroduction.pptxJAVA_Day1_BasicIntroduction.pptx
JAVA_Day1_BasicIntroduction.pptx
 
JAVAPart1_BasicIntroduction.pptx
JAVAPart1_BasicIntroduction.pptxJAVAPart1_BasicIntroduction.pptx
JAVAPart1_BasicIntroduction.pptx
 
Trends and future of java
Trends and future of javaTrends and future of java
Trends and future of java
 
Introduction to java
Introduction to java Introduction to java
Introduction to java
 
Curso de Programación Java Intermedio
Curso de Programación Java IntermedioCurso de Programación Java Intermedio
Curso de Programación Java Intermedio
 
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
 
Pi j1.1 what-is-java
Pi j1.1 what-is-javaPi j1.1 what-is-java
Pi j1.1 what-is-java
 
Java8 launch at AMIS Services / First8
Java8 launch at AMIS Services / First8Java8 launch at AMIS Services / First8
Java8 launch at AMIS Services / First8
 
OOP - Lecture02 - Introduction to Java.pptx
OOP - Lecture02 - Introduction to Java.pptxOOP - Lecture02 - Introduction to Java.pptx
OOP - Lecture02 - Introduction to Java.pptx
 
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
 
A tour of Java and the JVM
A tour of Java and the JVMA tour of Java and the JVM
A tour of Java and the JVM
 
01-Introduction.ppt
01-Introduction.ppt01-Introduction.ppt
01-Introduction.ppt
 
1java Introduction
1java Introduction1java Introduction
1java Introduction
 
itft-Java evolution
itft-Java evolutionitft-Java evolution
itft-Java evolution
 
OOP Lecture 1-Intro to Java.pptx
OOP Lecture 1-Intro to Java.pptxOOP Lecture 1-Intro to Java.pptx
OOP Lecture 1-Intro to Java.pptx
 
Java chapter 1 basic introduction Unit-1.pptx
Java chapter  1 basic introduction Unit-1.pptxJava chapter  1 basic introduction Unit-1.pptx
Java chapter 1 basic introduction Unit-1.pptx
 

More from Fu Cheng (6)

Introduction to Web Components
Introduction to Web ComponentsIntroduction to Web Components
Introduction to Web Components
 
Java SE 7 New Features and Enhancements
Java SE 7 New Features and EnhancementsJava SE 7 New Features and Enhancements
Java SE 7 New Features and Enhancements
 
Advanced guide to develop ajax applications using dojo
Advanced guide to develop ajax applications using dojoAdvanced guide to develop ajax applications using dojo
Advanced guide to develop ajax applications using dojo
 
Java类加载器
Java类加载器Java类加载器
Java类加载器
 
Ajax应用开发最佳实践
Ajax应用开发最佳实践Ajax应用开发最佳实践
Ajax应用开发最佳实践
 
Advanced JavaScript
Advanced JavaScriptAdvanced JavaScript
Advanced JavaScript
 

Recently uploaded

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 

The Evolution of Java