Java: Rumours of my demise are greatly exaggerated

51
Java….rumours of my demise have been greatly exaggerated Steve Dalton - @spidie refactor.com.au - codingbynumbers.com

description

The Java Platform has had a rocky year with the acquisition of Sun by Oracle and unfortunate bickering about language release schedules and licensing emerging. Despite all of this the community is strong and extremely innovative use of the platform continues at a great pace.This talk will cover some of the JVM options available to developers on the Linux platform along with a introduction to the myriad of alternative languages available, some you will have definitely heard of and some not.I will also give an executive summary of the political side of Java and where I believe the platform is heading.

Transcript of Java: Rumours of my demise are greatly exaggerated

Page 1: Java: Rumours of my demise are greatly exaggerated

Java….rumours of my demise have been greatly exaggerated

Steve Dalton - @spidierefactor.com.au - codingbynumbers.com

Page 2: Java: Rumours of my demise are greatly exaggerated

Java =

Java the Language+

Java Virtual Machine (JVM)+

Java Community Process (JCP)

Page 3: Java: Rumours of my demise are greatly exaggerated

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

Page 4: Java: Rumours of my demise are greatly exaggerated

JVM

Page 5: Java: Rumours of my demise are greatly exaggerated

Linux JVM Options

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

Page 6: Java: Rumours of my demise are greatly exaggerated

something to watch....

Dalvik

Page 7: Java: Rumours of my demise are greatly exaggerated

Java the Language

Page 8: Java: Rumours of my demise are greatly exaggerated

First a bit of history...

Where did 20 years go?

Page 9: Java: Rumours of my demise are greatly exaggerated

1990Stealth Project Begins

(Patrick Naughton)

Page 10: Java: Rumours of my demise are greatly exaggerated

1991Renamed to Green Project

(+ James Gosling & Mike Sheridan)

Page 11: Java: Rumours of my demise are greatly exaggerated

1992

Green OS & Oak Language Demoed

Page 12: Java: Rumours of my demise are greatly exaggerated

1993Green FirstPerson project→

(set-top boxes)

Page 13: Java: Rumours of my demise are greatly exaggerated

1994

Page 14: Java: Rumours of my demise are greatly exaggerated

1995

Oak renamed to Java

Page 15: Java: Rumours of my demise are greatly exaggerated

1996

JDK 1.0 Released

Page 16: Java: Rumours of my demise are greatly exaggerated

1997JDK 1.1

Inner Classes, Java Beans, JDBC, RMI, Reflection

Page 17: Java: Rumours of my demise are greatly exaggerated

1998J2SE 1.2

Swing, JVM gets a JIT, CollectionsJCP established

Page 18: Java: Rumours of my demise are greatly exaggerated

1998

JDK 1.1 downloads pass 2 million

Page 19: Java: Rumours of my demise are greatly exaggerated

1999Java Platform 2 source released

J2EE 1.2J2ME

Page 20: Java: Rumours of my demise are greatly exaggerated

2000Apple support Java

J2SE 1.3Hotspot JVM, JavaSound, JNDI, JPDA

Page 21: Java: Rumours of my demise are greatly exaggerated

2001

J2EE 1.3

Page 22: Java: Rumours of my demise are greatly exaggerated

2002J2SE 1.4

Regex, better exceptions, IPV6, logging, JAXP, Security, Web Start, Prefs

Page 23: Java: Rumours of my demise are greatly exaggerated

2003

J2EE 1.4

Page 24: Java: Rumours of my demise are greatly exaggerated

2004J2SE 5

Generics, Annotations, Autoboxing, Enums, Varargs, ForEach, Static Imports, Concurrency,

Page 25: Java: Rumours of my demise are greatly exaggerated

2005

Page 26: Java: Rumours of my demise are greatly exaggerated

2006Java SE 6

Scripting Language, PERFORMANCE + Lots of JVM improvements

Java SE7 Project beginsJEE 5

OpenJDK announced

Page 27: Java: Rumours of my demise are greatly exaggerated

2007JavaFX announced

Compiler and JavaFX Script Open Sourced

Page 28: Java: Rumours of my demise are greatly exaggerated

2008

JavaFX Platform 1.0

Page 29: Java: Rumours of my demise are greatly exaggerated

2009JavaFX 1.1JavaFX 1.2

JEE 6Oracle/Sun Merger

Page 30: Java: Rumours of my demise are greatly exaggerated

2010Revised Java roadmap announcedLot's of Java 7 features dropped

JavaFX Script droppedQuickly forked into Visage

Oracle sue Google over Dalvik/AndroidApple deprecate Java in OSX

bad press...then donate it to OpenJDK!IBM move to OpenJDK

JCP Madness!

Page 31: Java: Rumours of my demise are greatly exaggerated

2011?Java 7

Invoke Dynamic, Project Coin, Concurrency & Collections updates, NIO 2

Java FX 2

Page 32: Java: Rumours of my demise are greatly exaggerated

2012?Java 8

Invoke Dynamic, Project Coin, Concurrency & Collections updates, NIO 2

Page 33: Java: Rumours of my demise are greatly exaggerated

???

Steve's confidence level in Java the language low....

Page 34: Java: Rumours of my demise are greatly exaggerated

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

Page 35: Java: Rumours of my demise are greatly exaggerated

???

Why do I develop on this platform?

Page 36: Java: Rumours of my demise are greatly exaggerated

However, community finds a way...

Many Java Language Alternatives on JVM

CanonicalPorted

Page 37: Java: Rumours of my demise are greatly exaggerated

● Super Java● Dynamically Typed● Clear migration path● Well established● Closures, DSLs & Builders● Groovy++ makes it static

Page 38: Java: Rumours of my demise are greatly exaggerated

● Statically Typed● Functional or Imperative (you chose)● Concurrency built in (actor model)● Twitter and Foursquare big users● Lift Framework for web apps

Page 39: Java: Rumours of my demise are greatly exaggerated

● Dynamic● Lisp dialect● Functional● REPL for simple

interactive programming

● Concurrency baked in● Compojure, Ring,

Leiningen

Clojure

Page 40: Java: Rumours of my demise are greatly exaggerated

Ports

Page 41: Java: Rumours of my demise are greatly exaggerated

…and many more● jaskell● jsqueak● mirah● noop● jacl● frink

Or even make your own Domain Specific Language!

Page 42: Java: Rumours of my demise are greatly exaggerated

Java the Community

Page 43: Java: Rumours of my demise are greatly exaggerated

IDEs

+ vim, emacs, gedit, geany and every other editor under the sun

Page 44: Java: Rumours of my demise are greatly exaggerated

JOSS

Page 45: Java: Rumours of my demise are greatly exaggerated

Web Frameworks

Page 46: Java: Rumours of my demise are greatly exaggerated

JOSS in the “Enterprise”

Page 47: Java: Rumours of my demise are greatly exaggerated

Java Community Process (JCP)

Java Specification Requests (JSR) – over 300

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

JCP Executive Committee Votes

Page 48: Java: Rumours of my demise are greatly exaggerated

Sounds ok – what's the problem?

Page 49: Java: Rumours of my demise are greatly exaggerated

So... where are we heading?

JVM is a still rock solid platformToolset is still pretty awesome

Java community still very strongDoubts about language – COBOL of our time?

WTF are Oracle doing???

Page 50: Java: Rumours of my demise are greatly exaggerated

Steve's PredictionsJCP 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 everyoneClojure...niche, but could be HUGE

Might see some forksBut all depends on dreaded Software Patents.

Google GO for Android?

Page 51: Java: Rumours of my demise are greatly exaggerated

http://codingbynumbers.com

also on iTunes (sorry RMS!)

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