SlideShare a Scribd company logo
1 of 30
Free Java
Reasons to be cheerful!


Ben Evans (@kittlyst)
Martijn Verburg (@karianna)

                              Slide Design by Kerry Kenneally www.kerrykenneally.com
Who are these guys anyway?




                             2
Who are these guys anyway?




                             3
Who are these guys anyway?




                             4
Who are these guys anyway?




                             5
“Java’s not dead, it’s just resting!”

• This is a fact!

• This is an opinion


• Due to time constraints, other talks and beer, this talk may be a little
  different to advertised...

• For bonus points find the Easter egg!




                                                                 6
“Java’s not dead, it’s just resting!”

• It’s quite true that Java (the language) has been a bit quiet

• Yeah, but that’s a lot to do with big company stuff
    – We don’t really want to talk too much about that... maybe


• Java 6 had some significant improvements
    – It gets more bad press than it deserves
    – Performance is a key benefit

• Java 7 seemed at times to get lost in the wilderness
    –   Some of the features were released as updates to SE 6
        •    G1, Compressed object pointers, Slimmed down web runtime
    –   Big arguments about some features.....
        •    e.g. Closures (still going!)
    –   JavaFX distraction
                                                                        7
How did we get here? Where are my
          shoes?
• The community and the platform have not been quiet
   –   You’re a noisy bunch, that’s for sure!
   –   Conference attendances are _way_ up and growing
   –   Oracle marketing estimates 9-10 million developers
   –   Dozens of new JVM languages

• We’re actually winning
   – Seriously! Java is liberated (thanks to people in this room)
   – We’re now fighting over vigorously debating types of licenses and
     interpretations
   – And Governance!
   – Like any good democracy, we need to be vigilant of our freedoms




                                                                8
Along came Larry...




                      9
Google vs Oracle - Round 1 - Fight!




                                      10
Where’s the lawsuit at?

• http://www.groklaw.net (search for OracleGoogle)

• Most recent FUD: Copyrighted Source code found in Android!
   – A little digging showed this to be a little sensationalist


• Most recent case event: Case referred to a private mediator
   – If unresolved then trial on Oct 31 2011


• Developer community at Devoxx voted (87%) that the lawsuit was
  harmful in some way to Java

• Is the message that this is scaring off the community &
  corporates getting through to Oracle management?


                                                                  11
Parting of the ways and new joiners




                                                         12
                              Original Image by Acaben
OpenJDK - Plan B

• 20 Sep 2010 - Mark Reinhold announces that Oracle will go with
  Plan B
   – Splits the existing OpenJDK effort into Java 7 (July 2011) and Java 8
     (2012)
   – Popular choice with the community

• Some JRockit features to be added to OpenJDK
   – Exact roadmap not yet clear


• Changes to the memory model (Bye-bye Permgen)

• Some new features to be delayed until JDK 8
   – Closures Lambdas SAM literals



                                                                   13
InvokeDynamic

• InvokeDynamic is a key new JVM feature
    – It’s the first new bytecode since Java 1.0
    – Joins InvokeVirtual, InvokeStatic, InvokeInterface and InvokeSpecial


• It removes a key part of the static typing system
    – Method names / signatures will not need to be known at compile time
    – User code can determine dispatch at runtime
    – Lots of interesting possibilities

• Aims to be as fast as InvokeVirtual

• No Java syntax for handling it in Java 7 - but maybe for 8



                                                                   14
InvokeDynamic is a friend to free languages

• Free, open JVM languages such as JRuby, Jython, Groovy, Clojure
  et al all stand to benefit from InvokeDynamic
    – These gains will vary, JRuby gains a lot, Clojure not so much
    – There’s even talk of bringing it to Scala!

• Groovy is already well established as Java’s flexible friend
    – Increasing its performance keeps it at the forefront

• JRuby has been working closely with the JSR-292 team
    – Big potential wins
    – Makes JRuby enticing to RoR developers




                                                                      15
And now for something completely
          different... Concurrency
• Otters!

• Collaborative

• Competitive

• Sneaky

• Hare off in different directions

• Can wreak havoc if not contained




                                             16
Why concurrency matters again




                                17
New concurrency models

• Java’s approach of mutable state, locks and visible by default looks
  increasingly dated
    – java.util.concurrent is a big help, but can only go so far
    – Java’s syntax and semantics are constraints
    – Thread is not a high-level concurrency abstraction

• Other languages on the JVM are free to innovate
    – Clojure - Immutable by default, thread-isolation by default, STM
      subsystem
    – Scala - Powerful actors model


• Java 7 gets in on the party
    – fork and join executions are not necessarily threads



                                                                    18
What’s in my Future?

• Learning another JVM language won’t hurt!
    – Lots to choose from
    – No “Java Killer” yet.....

• Don’t forget about Java 7!
    – Some compelling new features (Coin, NIO.2, F/J, etc)
    – Yet more performance

• The Multi-core revolution is here
    – Brush up your modern concurrency
    – Java 7 makes this easier
    – Other languages offer alternative approaches




                                                             19
Java is not just the language




                                20
It’s about the community innit!




                                  Original Image by US Embassy Sweden




                                             21
Future of Java SE

• Will be just fine

• The mainline VM will continue to improve
   – InvokeDynamic
   – JRockit feature merge

• Probably not too many faddish language features
   – But you can have what you want anyway in other JVM languages
   – Yeah, we’re looking at you Scala, Clojure, Groovy fanboys/girls

• Hopefully everyone saw Mark’s talk




                                                                22
Future of JEE

• The future here looks bright!
   – More servers are getting certified as JEE6 - but it’s still early days
   – JEE7 process is starting to get underway


• JEE has shrunk whilst the open source alternatives have grown
   – They’re pretty much meeting in the middle
   – This is a good thing
   – Spring is quite big these days....
   – That’s less of a good thing


• Case Study - Adam Bien (Java Champion)
   – Live Demo - rapid development of apps with core JEE6
       • Check out the Devoxx video of him online




                                                                       23
Future of Java ME

• On the decline
   – Nokia has dropped it from their technology roadmap
   – Still popular in the dumbphone market
   – That’s still a really huge market

• Hints that with JDK 8, Java SE could eventually run on mobiles.
   – Mark mentioned this earlier
   – Will it be soon enough?

• Could Android become the official replacement for Java ME?
   – “No Comment” (Oracle and Google)
   – Seems unlikely today, but stranger things have happened




                                                               24
Java FX

• Yeah, well, it was a nice try

• Java FX 2.0 is coming out
    – Will anyone notice?


• Even MSFT are downgrading Silverlight from their roadmap
    – ‘HTML5’ seems to be the way forward
    – Whatever that means...


• Why have another runtime in a browser when it already has a
  capable (Javascript) VM?




                                                          25
JCP - Trouble in Paradise?

• OK, so it was never _really_ paradise
    – And we lied about not talking politics


• Stephen Colebourne’s blog captures the events nicely
    – http://www.jroller.com/scolebourne/


• Prominent members leaving
    – Doug Lea
    – “Crazy” Bob Lee

• Allegations of ballot stuffing

• We’re not sure what shape it’s going to take in the future
    – But let’s face it - it’s dead

                                                               26
Rebooting OpenJDK governance?

• Was there ever really a mature OSS governance model for
  OpenJDK?

• Surely something is better than nothing?


• New attempt being made by Mark & the committee
   –   Really positive that the team are trying to make progress
   –   Open mailing list: .... Doug’s back
   –   Still an awful lot to be ironed out - but possibilities
   –   The burden’s still on Oracle to engage with the community
   – But the community need to step up too


• But what about the rest of the JCP?


                                                                   27
An indecent A modest proposal

• Imagine a world...


• Where there was an independent standards body...

• Focused on delivering pure free as-in-speech and beer, explicitly
  patent-free, open standards for the Java ecosystem...


• Could such a body replace - or feed in to - the JCP?
    – This is similar to what Stephen Colebourne et al have suggested
    – We are just developers
    – But just imagine....




                                                                 28
The future’s bright, the future’s Java!

• We have arguably the most capable VM on the planet

• We have a wealth of new languages to complement and challenge
  Java

• We have oceans of open source software

• We have a great community (you guys)!!

• This is a GREAT time to be working in the Java ecosystem

• We have an opportunity to engage and make the most of our
  “Interesting Times”

                                                             29
Thanks for listening: wellgrndjava50




                                       30

More Related Content

Recently uploaded

Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 

Recently uploaded (20)

Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 

Featured

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 

Featured (20)

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 

Free Java - Reasons To Be Cheerful

  • 1. Free Java Reasons to be cheerful! Ben Evans (@kittlyst) Martijn Verburg (@karianna) Slide Design by Kerry Kenneally www.kerrykenneally.com
  • 2. Who are these guys anyway? 2
  • 3. Who are these guys anyway? 3
  • 4. Who are these guys anyway? 4
  • 5. Who are these guys anyway? 5
  • 6. “Java’s not dead, it’s just resting!” • This is a fact! • This is an opinion • Due to time constraints, other talks and beer, this talk may be a little different to advertised... • For bonus points find the Easter egg! 6
  • 7. “Java’s not dead, it’s just resting!” • It’s quite true that Java (the language) has been a bit quiet • Yeah, but that’s a lot to do with big company stuff – We don’t really want to talk too much about that... maybe • Java 6 had some significant improvements – It gets more bad press than it deserves – Performance is a key benefit • Java 7 seemed at times to get lost in the wilderness – Some of the features were released as updates to SE 6 • G1, Compressed object pointers, Slimmed down web runtime – Big arguments about some features..... • e.g. Closures (still going!) – JavaFX distraction 7
  • 8. How did we get here? Where are my shoes? • The community and the platform have not been quiet – You’re a noisy bunch, that’s for sure! – Conference attendances are _way_ up and growing – Oracle marketing estimates 9-10 million developers – Dozens of new JVM languages • We’re actually winning – Seriously! Java is liberated (thanks to people in this room) – We’re now fighting over vigorously debating types of licenses and interpretations – And Governance! – Like any good democracy, we need to be vigilant of our freedoms 8
  • 10. Google vs Oracle - Round 1 - Fight! 10
  • 11. Where’s the lawsuit at? • http://www.groklaw.net (search for OracleGoogle) • Most recent FUD: Copyrighted Source code found in Android! – A little digging showed this to be a little sensationalist • Most recent case event: Case referred to a private mediator – If unresolved then trial on Oct 31 2011 • Developer community at Devoxx voted (87%) that the lawsuit was harmful in some way to Java • Is the message that this is scaring off the community & corporates getting through to Oracle management? 11
  • 12. Parting of the ways and new joiners 12 Original Image by Acaben
  • 13. OpenJDK - Plan B • 20 Sep 2010 - Mark Reinhold announces that Oracle will go with Plan B – Splits the existing OpenJDK effort into Java 7 (July 2011) and Java 8 (2012) – Popular choice with the community • Some JRockit features to be added to OpenJDK – Exact roadmap not yet clear • Changes to the memory model (Bye-bye Permgen) • Some new features to be delayed until JDK 8 – Closures Lambdas SAM literals 13
  • 14. InvokeDynamic • InvokeDynamic is a key new JVM feature – It’s the first new bytecode since Java 1.0 – Joins InvokeVirtual, InvokeStatic, InvokeInterface and InvokeSpecial • It removes a key part of the static typing system – Method names / signatures will not need to be known at compile time – User code can determine dispatch at runtime – Lots of interesting possibilities • Aims to be as fast as InvokeVirtual • No Java syntax for handling it in Java 7 - but maybe for 8 14
  • 15. InvokeDynamic is a friend to free languages • Free, open JVM languages such as JRuby, Jython, Groovy, Clojure et al all stand to benefit from InvokeDynamic – These gains will vary, JRuby gains a lot, Clojure not so much – There’s even talk of bringing it to Scala! • Groovy is already well established as Java’s flexible friend – Increasing its performance keeps it at the forefront • JRuby has been working closely with the JSR-292 team – Big potential wins – Makes JRuby enticing to RoR developers 15
  • 16. And now for something completely different... Concurrency • Otters! • Collaborative • Competitive • Sneaky • Hare off in different directions • Can wreak havoc if not contained 16
  • 18. New concurrency models • Java’s approach of mutable state, locks and visible by default looks increasingly dated – java.util.concurrent is a big help, but can only go so far – Java’s syntax and semantics are constraints – Thread is not a high-level concurrency abstraction • Other languages on the JVM are free to innovate – Clojure - Immutable by default, thread-isolation by default, STM subsystem – Scala - Powerful actors model • Java 7 gets in on the party – fork and join executions are not necessarily threads 18
  • 19. What’s in my Future? • Learning another JVM language won’t hurt! – Lots to choose from – No “Java Killer” yet..... • Don’t forget about Java 7! – Some compelling new features (Coin, NIO.2, F/J, etc) – Yet more performance • The Multi-core revolution is here – Brush up your modern concurrency – Java 7 makes this easier – Other languages offer alternative approaches 19
  • 20. Java is not just the language 20
  • 21. It’s about the community innit! Original Image by US Embassy Sweden 21
  • 22. Future of Java SE • Will be just fine • The mainline VM will continue to improve – InvokeDynamic – JRockit feature merge • Probably not too many faddish language features – But you can have what you want anyway in other JVM languages – Yeah, we’re looking at you Scala, Clojure, Groovy fanboys/girls • Hopefully everyone saw Mark’s talk 22
  • 23. Future of JEE • The future here looks bright! – More servers are getting certified as JEE6 - but it’s still early days – JEE7 process is starting to get underway • JEE has shrunk whilst the open source alternatives have grown – They’re pretty much meeting in the middle – This is a good thing – Spring is quite big these days.... – That’s less of a good thing • Case Study - Adam Bien (Java Champion) – Live Demo - rapid development of apps with core JEE6 • Check out the Devoxx video of him online 23
  • 24. Future of Java ME • On the decline – Nokia has dropped it from their technology roadmap – Still popular in the dumbphone market – That’s still a really huge market • Hints that with JDK 8, Java SE could eventually run on mobiles. – Mark mentioned this earlier – Will it be soon enough? • Could Android become the official replacement for Java ME? – “No Comment” (Oracle and Google) – Seems unlikely today, but stranger things have happened 24
  • 25. Java FX • Yeah, well, it was a nice try • Java FX 2.0 is coming out – Will anyone notice? • Even MSFT are downgrading Silverlight from their roadmap – ‘HTML5’ seems to be the way forward – Whatever that means... • Why have another runtime in a browser when it already has a capable (Javascript) VM? 25
  • 26. JCP - Trouble in Paradise? • OK, so it was never _really_ paradise – And we lied about not talking politics • Stephen Colebourne’s blog captures the events nicely – http://www.jroller.com/scolebourne/ • Prominent members leaving – Doug Lea – “Crazy” Bob Lee • Allegations of ballot stuffing • We’re not sure what shape it’s going to take in the future – But let’s face it - it’s dead 26
  • 27. Rebooting OpenJDK governance? • Was there ever really a mature OSS governance model for OpenJDK? • Surely something is better than nothing? • New attempt being made by Mark & the committee – Really positive that the team are trying to make progress – Open mailing list: .... Doug’s back – Still an awful lot to be ironed out - but possibilities – The burden’s still on Oracle to engage with the community – But the community need to step up too • But what about the rest of the JCP? 27
  • 28. An indecent A modest proposal • Imagine a world... • Where there was an independent standards body... • Focused on delivering pure free as-in-speech and beer, explicitly patent-free, open standards for the Java ecosystem... • Could such a body replace - or feed in to - the JCP? – This is similar to what Stephen Colebourne et al have suggested – We are just developers – But just imagine.... 28
  • 29. The future’s bright, the future’s Java! • We have arguably the most capable VM on the planet • We have a wealth of new languages to complement and challenge Java • We have oceans of open source software • We have a great community (you guys)!! • This is a GREAT time to be working in the Java ecosystem • We have an opportunity to engage and make the most of our “Interesting Times” 29
  • 30. Thanks for listening: wellgrndjava50 30

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n