SlideShare a Scribd company logo
Java….rumours of my demise have been
        greatly exaggerated
                Steve Dalton - @spidie
       refactor.com.au - codingbynumbers.com
Java =

     Java the Language
              +
 Java Virtual Machine (JVM)
              +
Java Community Process (JCP)
Java is dead, long live Java

        JVM.... NO!
Java the language.... Maybe
      JCP.... Probably

Yes, I know I'm starting with a conclusion here...
                   move along
JVM
Linux JVM Options




For more see: http://en.wikipedia.org/wiki/List_of_Java_virtual_machines
something to watch....


         Dalvik
Java the
Language
First a bit of history...


     Where did 20 years go?
1990
Stealth Project Begins
  (Patrick Naughton)
1991
    Renamed to Green Project
(+ James Gosling & Mike Sheridan)
1992
Green OS & Oak Language Demoed
1993
Green → FirstPerson project
      (set-top boxes)
1994
1995
Oak renamed to Java
1996
JDK 1.0 Released
1997
                     JDK 1.1
Inner Classes, Java Beans, JDBC, RMI, Reflection
1998
            J2SE 1.2
Swing, JVM gets a JIT, Collections
         JCP established
1998
JDK 1.1 downloads pass 2 million
1999
Java Platform 2 source released
            J2EE 1.2
             J2ME
2000
        Apple support Java
             J2SE 1.3
Hotspot JVM, JavaSound, JNDI, JPDA
2001
 J2EE 1.3
2002
                  J2SE 1.4
Regex, better exceptions, IPV6, logging, JAXP,
         Security, Web Start, Prefs
2003
 J2EE 1.4
2004
                    J2SE 5
 Generics, Annotations, Autoboxing, Enums,
Varargs, ForEach, Static Imports, Concurrency,
2005
2006
                  Java SE 6
Scripting Language, PERFORMANCE + Lots of
             JVM improvements
           Java SE7 Project begins
                    JEE 5
            OpenJDK announced
2007
           JavaFX announced
Compiler and JavaFX Script Open Sourced
2008
JavaFX Platform 1.0
2009
   JavaFX 1.1
   JavaFX 1.2
      JEE 6
Oracle/Sun Merger
2010
  Revised Java roadmap announced
   Lot's of Java 7 features dropped
        JavaFX Script dropped
      Quickly forked into Visage
Oracle sue Google over Dalvik/Android
     Apple deprecate Java in OSX
bad press...then donate it to OpenJDK!
        IBM move to OpenJDK
             JCP Madness!
2011?
                  Java 7
Invoke Dynamic, Project Coin, Concurrency &
        Collections updates, NIO 2
                 Java FX 2
2012?
                  Java 8
Invoke Dynamic, Project Coin, Concurrency &
        Collections updates, NIO 2
???


Steve's confidence level in Java the language
                    low....
Java lang innovation
     just not happening
●
  Generics caused a lot of confusion
●
  Closures in Java 7 fiasco
●
  Meanwhile
  ●
    dotnet moves on
  ●
    Rise of Dynamic languages
  ●
    Functional Programming back with a
    vengeance
???



Why do I develop on this platform?
However, community
   finds a way...
Many Java Language Alternatives on JVM

              Canonical
               Ported
●   Super Java
●   Dynamically Typed
●   Clear migration path
●   Well established
●   Closures, DSLs & Builders
●   Groovy++ makes it static
●   Statically Typed
●   Functional or Imperative (you chose)
●   Concurrency built in (actor model)
●   Twitter and Foursquare big users
●   Lift Framework for web apps
●
              Dynamic
          ●
              Lisp dialect
          ●
              Functional
          ●
              REPL for simple
              interactive
              programming

Clojure       Concurrency baked in
          ●


          ●
              Compojure, Ring,
              Leiningen
Ports
…and many more
                         ●   jaskell
                         ●   jsqueak
                         ●   mirah
                         ●   noop
                         ●   jacl
                         ●   frink

Or even make your own Domain Specific
              Language!
Java the
Community
IDEs




+ vim, emacs, gedit, geany and every other
          editor under the sun
JOSS
Web Frameworks
JOSS in the
“Enterprise”
Java Community
      Process (JCP)
Java Specification Requests (JSR) – over 300

 JSR = Ref Implementation (with Source) +
    Technology Compatibility Kit (TCK)

      JCP Executive Committee Votes
Sounds ok – what's the problem?
So... where are we
         heading?
      JVM is a still rock solid platform
       Toolset is still pretty awesome
     Java community still very strong
Doubts about language – COBOL of our time?
         WTF are Oracle doing???
Steve's Predictions
                   JCP is dead
  Java 7/8 will happen but will anyone care?
  Groovy will replace Java for a lot of tasks
    Scala will do well but not for everyone
      Clojure...niche, but could be HUGE
             Might see some forks
But all depends on dreaded Software Patents.

          Google GO for Android?
http://codingbynumbers.com

               also on iTunes (sorry RMS!)


Attribution:
      http://www.flickr.com/photos/minifig/3186925111/

More Related Content

What's hot

Java History
Java HistoryJava History
Java History
Prionto Abdullah
 
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
 
itft-Java evolution
itft-Java evolutionitft-Java evolution
itft-Java evolution
Atul Sehdev
 
Java 1
Java 1Java 1
Java 7 Modularity: a View from the Gallery
Java 7 Modularity: a View from the GalleryJava 7 Modularity: a View from the Gallery
Java 7 Modularity: a View from the Gallerynjbartlett
 
Jalimo Slides Linuxtag2007 (English)
Jalimo Slides Linuxtag2007 (English)Jalimo Slides Linuxtag2007 (English)
Jalimo Slides Linuxtag2007 (English)
smancke
 
Java Presentation
Java PresentationJava Presentation
Java Presentation
Amr Salah
 
LUGOD Raspberry Pi Hacking
LUGOD Raspberry Pi HackingLUGOD Raspberry Pi Hacking
LUGOD Raspberry Pi Hacking
Stephen Chin
 
Simple Pure Java
Simple Pure JavaSimple Pure Java
Simple Pure Java
Anton Keks
 
Introduction to Java
Introduction to Java Introduction to Java
Introduction to Java
Hitesh-Java
 
Java EE6 CodeCamp16 oct 2010
Java EE6 CodeCamp16 oct 2010Java EE6 CodeCamp16 oct 2010
Java EE6 CodeCamp16 oct 2010Codecamp Romania
 
Eclipsecon 2010 - Scala Support in Eclipse
Eclipsecon 2010 - Scala Support in EclipseEclipsecon 2010 - Scala Support in Eclipse
Eclipsecon 2010 - Scala Support in EclipseMiles Sabin
 
Introduction to Java 7 (OSCON 2012)
Introduction to Java 7 (OSCON 2012)Introduction to Java 7 (OSCON 2012)
Introduction to Java 7 (OSCON 2012)
Martijn Verburg
 
JVM Languages Support in Eclipse - Monkey-patching the JDT for fun and profit?
JVM Languages Support in Eclipse - Monkey-patching the JDT for fun and profit?JVM Languages Support in Eclipse - Monkey-patching the JDT for fun and profit?
JVM Languages Support in Eclipse - Monkey-patching the JDT for fun and profit?
Miles Sabin
 
Java Tutorial to Learn Java Programming
Java Tutorial to Learn Java ProgrammingJava Tutorial to Learn Java Programming
Java Tutorial to Learn Java Programming
business Corporate
 

What's hot (20)

Evolution Of Java
Evolution Of JavaEvolution Of Java
Evolution Of Java
 
Java History
Java HistoryJava History
Java History
 
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
 
itft-Java evolution
itft-Java evolutionitft-Java evolution
itft-Java evolution
 
Java 1
Java 1Java 1
Java 1
 
Java (1)
Java (1)Java (1)
Java (1)
 
Java 7 Modularity: a View from the Gallery
Java 7 Modularity: a View from the GalleryJava 7 Modularity: a View from the Gallery
Java 7 Modularity: a View from the Gallery
 
Jalimo Slides Linuxtag2007 (English)
Jalimo Slides Linuxtag2007 (English)Jalimo Slides Linuxtag2007 (English)
Jalimo Slides Linuxtag2007 (English)
 
Java Presentation
Java PresentationJava Presentation
Java Presentation
 
LUGOD Raspberry Pi Hacking
LUGOD Raspberry Pi HackingLUGOD Raspberry Pi Hacking
LUGOD Raspberry Pi Hacking
 
9 cm604.1
9 cm604.19 cm604.1
9 cm604.1
 
Simple Pure Java
Simple Pure JavaSimple Pure Java
Simple Pure Java
 
Introduction to Java
Introduction to Java Introduction to Java
Introduction to Java
 
Java features
Java featuresJava features
Java features
 
Lec 3 01_aug13
Lec 3 01_aug13Lec 3 01_aug13
Lec 3 01_aug13
 
Java EE6 CodeCamp16 oct 2010
Java EE6 CodeCamp16 oct 2010Java EE6 CodeCamp16 oct 2010
Java EE6 CodeCamp16 oct 2010
 
Eclipsecon 2010 - Scala Support in Eclipse
Eclipsecon 2010 - Scala Support in EclipseEclipsecon 2010 - Scala Support in Eclipse
Eclipsecon 2010 - Scala Support in Eclipse
 
Introduction to Java 7 (OSCON 2012)
Introduction to Java 7 (OSCON 2012)Introduction to Java 7 (OSCON 2012)
Introduction to Java 7 (OSCON 2012)
 
JVM Languages Support in Eclipse - Monkey-patching the JDT for fun and profit?
JVM Languages Support in Eclipse - Monkey-patching the JDT for fun and profit?JVM Languages Support in Eclipse - Monkey-patching the JDT for fun and profit?
JVM Languages Support in Eclipse - Monkey-patching the JDT for fun and profit?
 
Java Tutorial to Learn Java Programming
Java Tutorial to Learn Java ProgrammingJava Tutorial to Learn Java Programming
Java Tutorial to Learn Java Programming
 

Viewers also liked

Presentation maastricht red eportfolio
Presentation maastricht red eportfolioPresentation maastricht red eportfolio
Presentation maastricht red eportfolio
erubio
 
Scrum Failure Modes in Small Business
Scrum Failure Modes in Small BusinessScrum Failure Modes in Small Business
Scrum Failure Modes in Small Business
Steve Dalton
 
Gold Coast Tech Space
Gold Coast Tech SpaceGold Coast Tech Space
Gold Coast Tech Space
Steve Dalton
 
"Dinamizadores de la Innovación: eInnovador"
"Dinamizadores de la Innovación: eInnovador""Dinamizadores de la Innovación: eInnovador"
"Dinamizadores de la Innovación: eInnovador"
erubio
 
Intro to the_furr_high_school_library (2010)
Intro to the_furr_high_school_library (2010)Intro to the_furr_high_school_library (2010)
Intro to the_furr_high_school_library (2010)furr_librarian
 
Getting started programming on Linux
Getting started programming on LinuxGetting started programming on Linux
Getting started programming on Linux
Steve Dalton
 
C:\Documents And Settings\Ggeorge3\Desktop\Library\Intro To The Furr High Sch...
C:\Documents And Settings\Ggeorge3\Desktop\Library\Intro To The Furr High Sch...C:\Documents And Settings\Ggeorge3\Desktop\Library\Intro To The Furr High Sch...
C:\Documents And Settings\Ggeorge3\Desktop\Library\Intro To The Furr High Sch...furr_librarian
 
Fundraising presentation griet_verhaert_dirk_van_den_poel_www_crm_ugent_be
Fundraising presentation griet_verhaert_dirk_van_den_poel_www_crm_ugent_beFundraising presentation griet_verhaert_dirk_van_den_poel_www_crm_ugent_be
Fundraising presentation griet_verhaert_dirk_van_den_poel_www_crm_ugent_be
dvdpugent
 

Viewers also liked (9)

Presentation maastricht red eportfolio
Presentation maastricht red eportfolioPresentation maastricht red eportfolio
Presentation maastricht red eportfolio
 
Scrum Failure Modes in Small Business
Scrum Failure Modes in Small BusinessScrum Failure Modes in Small Business
Scrum Failure Modes in Small Business
 
Gold Coast Tech Space
Gold Coast Tech SpaceGold Coast Tech Space
Gold Coast Tech Space
 
Cmi modelo gavilan
Cmi modelo gavilanCmi modelo gavilan
Cmi modelo gavilan
 
"Dinamizadores de la Innovación: eInnovador"
"Dinamizadores de la Innovación: eInnovador""Dinamizadores de la Innovación: eInnovador"
"Dinamizadores de la Innovación: eInnovador"
 
Intro to the_furr_high_school_library (2010)
Intro to the_furr_high_school_library (2010)Intro to the_furr_high_school_library (2010)
Intro to the_furr_high_school_library (2010)
 
Getting started programming on Linux
Getting started programming on LinuxGetting started programming on Linux
Getting started programming on Linux
 
C:\Documents And Settings\Ggeorge3\Desktop\Library\Intro To The Furr High Sch...
C:\Documents And Settings\Ggeorge3\Desktop\Library\Intro To The Furr High Sch...C:\Documents And Settings\Ggeorge3\Desktop\Library\Intro To The Furr High Sch...
C:\Documents And Settings\Ggeorge3\Desktop\Library\Intro To The Furr High Sch...
 
Fundraising presentation griet_verhaert_dirk_van_den_poel_www_crm_ugent_be
Fundraising presentation griet_verhaert_dirk_van_den_poel_www_crm_ugent_beFundraising presentation griet_verhaert_dirk_van_den_poel_www_crm_ugent_be
Fundraising presentation griet_verhaert_dirk_van_den_poel_www_crm_ugent_be
 

Similar to Java: Rumours of my demise are greatly exaggerated

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
 
Why Java
Why JavaWhy Java
Why Java
Kiki Ahmadi
 
20 Years of Java - Story of HER life
20 Years of Java - Story of HER life20 Years of Java - Story of HER life
20 Years of Java - Story of HER life
Stojan Peshov
 
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
 
Java Technology Trends
Java Technology TrendsJava Technology Trends
Java Technology Trends
Software Park Thailand
 
Introducing Java 7
Introducing Java 7Introducing Java 7
Introducing Java 7
Markus Eisele
 
Building MapAttack
Building MapAttackBuilding MapAttack
Building MapAttack
Kyle Drake
 
Powering the Next Generation Services with Java Platform - Spark IT 2010
Powering the Next Generation Services with Java Platform - Spark IT 2010Powering the Next Generation Services with Java Platform - Spark IT 2010
Powering the Next Generation Services with Java Platform - Spark IT 2010
Arun Gupta
 
Bitter Java, Sweeten with JRuby
Bitter Java, Sweeten with JRubyBitter Java, Sweeten with JRuby
Bitter Java, Sweeten with JRuby
Brian Sam-Bodden
 
01-Introduction.ppt
01-Introduction.ppt01-Introduction.ppt
01-Introduction.ppt
EmanAsem4
 
Splunking the JVM (Java Virtual Machine)
Splunking the JVM (Java Virtual Machine)Splunking the JVM (Java Virtual Machine)
Splunking the JVM (Java Virtual Machine)
Damien Dallimore
 
Java and OpenJDK: disecting the ecosystem
Java and OpenJDK: disecting the ecosystemJava and OpenJDK: disecting the ecosystem
Java and OpenJDK: disecting the ecosystem
Rafael Winterhalter
 
Introduction to java
Introduction to java Introduction to java
Introduction to java
Sandeep Rawat
 
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
UzairSaeed18
 
Java keynote preso
Java keynote presoJava keynote preso
Java keynote preso
Artur Alves
 
Why JVM will outlive java?
Why JVM will outlive java?Why JVM will outlive java?
Why JVM will outlive java?
Ram Lakshmanan
 
Java -lec-1
Java -lec-1Java -lec-1
Java -lec-1
Zubair Khalid
 
JBUG 11 - Outside The Java Box
JBUG 11 - Outside The Java BoxJBUG 11 - Outside The Java Box
JBUG 11 - Outside The Java Box
Tikal Knowledge
 

Similar to Java: Rumours of my demise are greatly exaggerated (20)

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
 
Retour JavaOne 2009
Retour JavaOne 2009Retour JavaOne 2009
Retour JavaOne 2009
 
Why Java
Why JavaWhy Java
Why Java
 
20 Years of Java - Story of HER life
20 Years of Java - Story of HER life20 Years of Java - Story of HER life
20 Years of Java - Story of HER life
 
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
 
Java Technology Trends
Java Technology TrendsJava Technology Trends
Java Technology Trends
 
Introducing Java 7
Introducing Java 7Introducing Java 7
Introducing Java 7
 
Building MapAttack
Building MapAttackBuilding MapAttack
Building MapAttack
 
Powering the Next Generation Services with Java Platform - Spark IT 2010
Powering the Next Generation Services with Java Platform - Spark IT 2010Powering the Next Generation Services with Java Platform - Spark IT 2010
Powering the Next Generation Services with Java Platform - Spark IT 2010
 
Bitter Java, Sweeten with JRuby
Bitter Java, Sweeten with JRubyBitter Java, Sweeten with JRuby
Bitter Java, Sweeten with JRuby
 
01-Introduction.ppt
01-Introduction.ppt01-Introduction.ppt
01-Introduction.ppt
 
Splunking the JVM (Java Virtual Machine)
Splunking the JVM (Java Virtual Machine)Splunking the JVM (Java Virtual Machine)
Splunking the JVM (Java Virtual Machine)
 
Java and OpenJDK: disecting the ecosystem
Java and OpenJDK: disecting the ecosystemJava and OpenJDK: disecting the ecosystem
Java and OpenJDK: disecting the ecosystem
 
Introduction to java
Introduction to java Introduction to java
Introduction to java
 
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
 
Java keynote preso
Java keynote presoJava keynote preso
Java keynote preso
 
Why JVM will outlive java?
Why JVM will outlive java?Why JVM will outlive java?
Why JVM will outlive java?
 
Java -lec-1
Java -lec-1Java -lec-1
Java -lec-1
 
JBUG 11 - Outside The Java Box
JBUG 11 - Outside The Java BoxJBUG 11 - Outside The Java Box
JBUG 11 - Outside The Java Box
 

Recently uploaded

GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 

Recently uploaded (20)

GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 

Java: Rumours of my demise are greatly exaggerated

  • 1. Java….rumours of my demise have been greatly exaggerated Steve Dalton - @spidie refactor.com.au - codingbynumbers.com
  • 2. Java = Java the Language + Java Virtual Machine (JVM) + Java Community Process (JCP)
  • 3. Java is dead, long live Java JVM.... NO! Java the language.... Maybe JCP.... Probably Yes, I know I'm starting with a conclusion here... move along
  • 4. JVM
  • 5. Linux JVM Options For more see: http://en.wikipedia.org/wiki/List_of_Java_virtual_machines
  • 8. First a bit of history... Where did 20 years go?
  • 9. 1990 Stealth Project Begins (Patrick Naughton)
  • 10. 1991 Renamed to Green Project (+ James Gosling & Mike Sheridan)
  • 11. 1992 Green OS & Oak Language Demoed
  • 12. 1993 Green → FirstPerson project (set-top boxes)
  • 13. 1994
  • 16. 1997 JDK 1.1 Inner Classes, Java Beans, JDBC, RMI, Reflection
  • 17. 1998 J2SE 1.2 Swing, JVM gets a JIT, Collections JCP established
  • 18. 1998 JDK 1.1 downloads pass 2 million
  • 19. 1999 Java Platform 2 source released J2EE 1.2 J2ME
  • 20. 2000 Apple support Java J2SE 1.3 Hotspot JVM, JavaSound, JNDI, JPDA
  • 22. 2002 J2SE 1.4 Regex, better exceptions, IPV6, logging, JAXP, Security, Web Start, Prefs
  • 24. 2004 J2SE 5 Generics, Annotations, Autoboxing, Enums, Varargs, ForEach, Static Imports, Concurrency,
  • 25. 2005
  • 26. 2006 Java SE 6 Scripting Language, PERFORMANCE + Lots of JVM improvements Java SE7 Project begins JEE 5 OpenJDK announced
  • 27. 2007 JavaFX announced Compiler and JavaFX Script Open Sourced
  • 29. 2009 JavaFX 1.1 JavaFX 1.2 JEE 6 Oracle/Sun Merger
  • 30. 2010 Revised Java roadmap announced Lot's of Java 7 features dropped JavaFX Script dropped Quickly forked into Visage Oracle sue Google over Dalvik/Android Apple deprecate Java in OSX bad press...then donate it to OpenJDK! IBM move to OpenJDK JCP Madness!
  • 31. 2011? Java 7 Invoke Dynamic, Project Coin, Concurrency & Collections updates, NIO 2 Java FX 2
  • 32. 2012? Java 8 Invoke Dynamic, Project Coin, Concurrency & Collections updates, NIO 2
  • 33. ??? Steve's confidence level in Java the language low....
  • 34. Java lang innovation just not happening ● Generics caused a lot of confusion ● Closures in Java 7 fiasco ● Meanwhile ● dotnet moves on ● Rise of Dynamic languages ● Functional Programming back with a vengeance
  • 35. ??? Why do I develop on this platform?
  • 36. However, community finds a way... Many Java Language Alternatives on JVM Canonical Ported
  • 37. Super Java ● Dynamically Typed ● Clear migration path ● Well established ● Closures, DSLs & Builders ● Groovy++ makes it static
  • 38. Statically Typed ● Functional or Imperative (you chose) ● Concurrency built in (actor model) ● Twitter and Foursquare big users ● Lift Framework for web apps
  • 39. Dynamic ● Lisp dialect ● Functional ● REPL for simple interactive programming Clojure Concurrency baked in ● ● Compojure, Ring, Leiningen
  • 40. Ports
  • 41. …and many more ● jaskell ● jsqueak ● mirah ● noop ● jacl ● frink Or even make your own Domain Specific Language!
  • 43. IDEs + vim, emacs, gedit, geany and every other editor under the sun
  • 44. JOSS
  • 47. Java Community Process (JCP) Java Specification Requests (JSR) – over 300 JSR = Ref Implementation (with Source) + Technology Compatibility Kit (TCK) JCP Executive Committee Votes
  • 48. Sounds ok – what's the problem?
  • 49. So... where are we heading? JVM is a still rock solid platform Toolset is still pretty awesome Java community still very strong Doubts about language – COBOL of our time? WTF are Oracle doing???
  • 50. Steve's Predictions JCP is dead Java 7/8 will happen but will anyone care? Groovy will replace Java for a lot of tasks Scala will do well but not for everyone Clojure...niche, but could be HUGE Might see some forks But all depends on dreaded Software Patents. Google GO for Android?
  • 51. http://codingbynumbers.com also on iTunes (sorry RMS!) Attribution: http://www.flickr.com/photos/minifig/3186925111/