SlideShare a Scribd company logo
<Insert Picture Here>




Java @Oracle
Mikael Vidstedt
JVM Architect, Oracle Java Platform Group
The following is intended to outline our general
product direction. It is intended for information
purposes only, and may not be incorporated into any
contract. It is not a commitment to deliver any
material, code, or functionality, and should not be
relied upon in making purchasing decisions.
The development, release, and timing of any
features or functionality described for Oracle’s
products remains at the sole discretion of Oracle.
http://commons.wikimedia.org/wiki/File:Alexander_cuts_the_Gordian_Knot.jpg
Java SWOT – Sun days



Strengths                            Weaknesses
•   Most used programming language   •No new releases
•   Garbage collection               •Steward out of cash
•   Community driven                 •No good Smart phone story
•   Adaptive runtime
•   Install base
•   Strong community
•   High performance



Opportunities                        Threats
•Multi Core                          •Next big thing
•JVM interop                         •Walled garden platforms
•Cloud                               •Not attractive to new developers
                                     •Uncertain future
Java SWOT – Oracle


Strengths                         Weaknesses
•Most used programming language   •No new releases
•Garbage collection               •Steward out of cash
•Community driven                 •No good Smart phone story
•Adaptive runtime
•Write once…
•Strong community
•High performance




Opportunities                     Threats
•Multi Core                       •Next big thing
•JVM interop                      •Walled garden platforms
•Cloud                            •Not attractive to new developers
                                  •Uncertain future
                                  •Bad name in community
Javaforum 20110915
Oracle’s Java Strategy
In Order of Priority



1. A Vibrant Java Ecosystem
2. Generate Revenue
3. Lower Costs
Java 7
Java 7 = Java 7 + Java 8
      (a.k.a. Plan B)
Rebranding
Final warning!


     System Property                                         Value
     java.vendor                                             Oracle Corporation
     java.vendor.url                                         http://java.oracle.com
     java.specification.vendor                               Oracle Corporation
     java.vm.vendor                                          Oracle Corporation
     java.vm.specification.vendor                            Oracle Corporation

     Other
     Windows COMPANY file properties (.exe and .dll)         Oracle Corporation
     src/share/classes/javax/management/build.xml ,          Oracle Corporation
     Specification-Vendor
     src/share/classes/javax/management/build.xml ,          “Source bundle from Oracle
     Implementation-Vendor                                   Corporation - Customer rebuilt…”

     MBeans
     /jmx/build/properties, JMX spec vendor                Oracle Corporation
     /jmx/defaults/ServiceName.java, JXM_SPEC_VENDOR       Oracle Corporation
     /jmx/defaults/ServiceName.java, JMX_IMPL_VENDOR       Oracle Corporation
     /management/openmbean/MBeanFeatureInfoSerialStore.j   Oracle Corporation
     ava, SERIALIZER_VM_VENDOR
Paradigm level change


“…as simple and as few as possible without having
 to surrender the adequate representation…”
                              Albert Einstein



“As simple as possible, but no simpler”
                  (not really) Albert Einstein
Merge Sort, Single threaded
function merge_sort(m)
   if length(m) ≤ 1
      return m
   var list left, right, result
   var integer middle = length(m) / 2
   for each x in m up to middle
      add x to left
   for each x in m after middle
      add x to right
   left = merge_sort(left)
   right = merge_sort(right)
   result = merge(left, right) return result




                                               http://en.wikipedia.org/wiki/Merge_sort
Merge Sort, Double threaded
function double_merge_sort(m)
   if length(m) ≤ 1
      return m
   var list left, right, result
   var integer middle = length(m) / 2
   for each x in m up to middle
      add x to left
   for each x in m after middle
      add x to right
   Thread t2 = new thread()
   left = t2.merge_sort(left)
   right = merge_sort(right)
   return merge(left, right)




                                        http://en.wikipedia.org/wiki/Merge_sort
Merge Sort, n - threads
function n_merge_sort(m)
   n = System.GetNoOfCores()
   var parts[n] = split(m, n)
   var results[n]
   var threads[n] = new Thread[n]
   For(i = 1 to n)
      results[i] = threads[i].merge_sort(parts[i])
   Return n_merge(results, threads)




                                                 http://en.wikipedia.org/wiki/Merge_sort
Easy! Right?


•   Return values from threads
•   Synchronization and locks
•   Setup cost
•   Unbalanced workloads
•   Should you really use all HW treads at all times?
What if I just could…
Class MergeSorter<int[]>
  … minor plumbing …

  Function compute(m)
     if length(m) > THRESHHOLD
            return merge_sort(m)
     leftWorker = New MergeSorter(firstHalf(m))
     rightWorker = New MergeSorter(secondHalf(m))
     invokeAll (leftWorker, rightWorker)
     return merge(leftWorker.result, rightWorker.result)




    http://download.oracle.com/javase/tutorial/essential/concurrency/forkjoin.html
Fork/Join


• Built-in scalability
  – New threads created on demand by framework
  – Efficient work balancing using work stealing
• Easy to use!
  – No complex synchronization
Nice. What else?


“naming anything „newest‟ because there's already
 an older version named „new‟ should be […] sign
 that it won't be for very long...”
                                  Nords Law



“Its when you get „Newest2‟ that you know you
  really are in trouble”
                            Topics corollary
NIO.2


• Better file system support
  – OS agnostic
  – ZIP and JAR
  – Directory watch




        http://download.oracle.com/javase/tutorial/essential/io/fileio.html
Project Coin


• A number of small language improvements
JSR 292


• Invokedynamic
Graphics
Graphics


• Optimized Java2D pipeline




• Swing JLayer Component
Networking


• SDP support

• SCTP support

• Vista IPv6 stack
Security


• Native ECC provider

• TLS 1.2



• DEP and ASLR on windows
Updates


•   JAXP
•   JAX-WS, JAXB
•   Unicode 6
•   BCP47 and UTR35
•   Separate locale and interface
•   JDBC 4.1
•   Rowset 1.1
•   Stylesheets for Javadocs!
Lets get ready to rrrruuuumm...
2010 Eclipse Community survey

 69,8 + 21.7%
 vs
 4.6%




n.b. Eclipse users
What about Stockholm & Sweden?


• Development
  –   JVM
  –   Mission Control
  –   Sustaining Engineering
  –   ...
• Power?
  –   Senior developers
  –   Inbound PM
  –   2 of 4 architects
  –   (in Exile) Dev Manager.
Javaforum 20110915
Javaforum 20110915

More Related Content

PDF
Understanding
PPTX
BI, Integration, and Apps on Couchbase using Simba ODBC and JDBC
PDF
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3
PDF
Running your Java EE applications in the Cloud
PDF
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
PDF
Tools Coverage for the Java EE Platform @ Silicon Valley Code Camp 2010
ODP
OTN Developer Days - Java EE 6
PDF
MySQL JSON Functions
Understanding
BI, Integration, and Apps on Couchbase using Simba ODBC and JDBC
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3
Running your Java EE applications in the Cloud
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
Tools Coverage for the Java EE Platform @ Silicon Valley Code Camp 2010
OTN Developer Days - Java EE 6
MySQL JSON Functions

Viewers also liked (7)

PPT
PDF
Liquibase få kontroll på dina databasförändringar
KEY
Agile Database Development with Liquibase
KEY
Database Refactoring With Liquibase
PDF
Javaforum indy
PDF
Javaforum coin
PDF
Groovy moppingjavaforum
Liquibase få kontroll på dina databasförändringar
Agile Database Development with Liquibase
Database Refactoring With Liquibase
Javaforum indy
Javaforum coin
Groovy moppingjavaforum
Ad

Similar to Javaforum 20110915 (20)

PDF
The State of Java under Oracle at JCertif 2011
PPT
Oracle Java Strategy Lg V3
PDF
Java 2012 conference keynote - Java Strategy & Roadmap - WebLogic & GlassFish...
PDF
Virtual dev-day-java7-keynote-1641807
PDF
JDK 10 Java Module System
PDF
10 Reasons Why Java Now Rocks More Than Ever
PDF
Bringing Java into the Open
PDF
Java overview 20131022
PDF
APAC Tour 2019 update
PPTX
ESEconf2011 - Freixa Vidal Roger: "Oracle's Java Strategy"
PDF
JDK versions and OpenJDK
PPTX
Java 101
PPTX
JAVA - Summary Introduction to java .pptx
DOCX
meta title java.docx
PPTX
A tour of Java and the JVM
PPTX
OpenJDK: How to Join In on All the Fun [JavaOne 2017 CON3667]
PPTX
Java: how to thrive in the changing world
PPT
01 java intro
PPTX
The Java Story
PDF
The Future of Java and You
The State of Java under Oracle at JCertif 2011
Oracle Java Strategy Lg V3
Java 2012 conference keynote - Java Strategy & Roadmap - WebLogic & GlassFish...
Virtual dev-day-java7-keynote-1641807
JDK 10 Java Module System
10 Reasons Why Java Now Rocks More Than Ever
Bringing Java into the Open
Java overview 20131022
APAC Tour 2019 update
ESEconf2011 - Freixa Vidal Roger: "Oracle's Java Strategy"
JDK versions and OpenJDK
Java 101
JAVA - Summary Introduction to java .pptx
meta title java.docx
A tour of Java and the JVM
OpenJDK: How to Join In on All the Fun [JavaOne 2017 CON3667]
Java: how to thrive in the changing world
01 java intro
The Java Story
The Future of Java and You
Ad

Recently uploaded (20)

PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Empathic Computing: Creating Shared Understanding
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
cuic standard and advanced reporting.pdf
PPTX
Cloud computing and distributed systems.
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
A Presentation on Artificial Intelligence
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Encapsulation theory and applications.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Machine learning based COVID-19 study performance prediction
Mobile App Security Testing_ A Comprehensive Guide.pdf
Empathic Computing: Creating Shared Understanding
Spectral efficient network and resource selection model in 5G networks
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Review of recent advances in non-invasive hemoglobin estimation
cuic standard and advanced reporting.pdf
Cloud computing and distributed systems.
“AI and Expert System Decision Support & Business Intelligence Systems”
A Presentation on Artificial Intelligence
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Encapsulation theory and applications.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Unlocking AI with Model Context Protocol (MCP)
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Machine learning based COVID-19 study performance prediction

Javaforum 20110915

  • 1. <Insert Picture Here> Java @Oracle Mikael Vidstedt JVM Architect, Oracle Java Platform Group
  • 2. The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.
  • 4. Java SWOT – Sun days Strengths Weaknesses • Most used programming language •No new releases • Garbage collection •Steward out of cash • Community driven •No good Smart phone story • Adaptive runtime • Install base • Strong community • High performance Opportunities Threats •Multi Core •Next big thing •JVM interop •Walled garden platforms •Cloud •Not attractive to new developers •Uncertain future
  • 5. Java SWOT – Oracle Strengths Weaknesses •Most used programming language •No new releases •Garbage collection •Steward out of cash •Community driven •No good Smart phone story •Adaptive runtime •Write once… •Strong community •High performance Opportunities Threats •Multi Core •Next big thing •JVM interop •Walled garden platforms •Cloud •Not attractive to new developers •Uncertain future •Bad name in community
  • 7. Oracle’s Java Strategy In Order of Priority 1. A Vibrant Java Ecosystem 2. Generate Revenue 3. Lower Costs
  • 9. Java 7 = Java 7 + Java 8 (a.k.a. Plan B)
  • 11. Final warning! System Property Value java.vendor Oracle Corporation java.vendor.url http://java.oracle.com java.specification.vendor Oracle Corporation java.vm.vendor Oracle Corporation java.vm.specification.vendor Oracle Corporation Other Windows COMPANY file properties (.exe and .dll) Oracle Corporation src/share/classes/javax/management/build.xml , Oracle Corporation Specification-Vendor src/share/classes/javax/management/build.xml , “Source bundle from Oracle Implementation-Vendor Corporation - Customer rebuilt…” MBeans /jmx/build/properties, JMX spec vendor Oracle Corporation /jmx/defaults/ServiceName.java, JXM_SPEC_VENDOR Oracle Corporation /jmx/defaults/ServiceName.java, JMX_IMPL_VENDOR Oracle Corporation /management/openmbean/MBeanFeatureInfoSerialStore.j Oracle Corporation ava, SERIALIZER_VM_VENDOR
  • 12. Paradigm level change “…as simple and as few as possible without having to surrender the adequate representation…” Albert Einstein “As simple as possible, but no simpler” (not really) Albert Einstein
  • 13. Merge Sort, Single threaded function merge_sort(m) if length(m) ≤ 1 return m var list left, right, result var integer middle = length(m) / 2 for each x in m up to middle add x to left for each x in m after middle add x to right left = merge_sort(left) right = merge_sort(right) result = merge(left, right) return result http://en.wikipedia.org/wiki/Merge_sort
  • 14. Merge Sort, Double threaded function double_merge_sort(m) if length(m) ≤ 1 return m var list left, right, result var integer middle = length(m) / 2 for each x in m up to middle add x to left for each x in m after middle add x to right Thread t2 = new thread() left = t2.merge_sort(left) right = merge_sort(right) return merge(left, right) http://en.wikipedia.org/wiki/Merge_sort
  • 15. Merge Sort, n - threads function n_merge_sort(m) n = System.GetNoOfCores() var parts[n] = split(m, n) var results[n] var threads[n] = new Thread[n] For(i = 1 to n) results[i] = threads[i].merge_sort(parts[i]) Return n_merge(results, threads) http://en.wikipedia.org/wiki/Merge_sort
  • 16. Easy! Right? • Return values from threads • Synchronization and locks • Setup cost • Unbalanced workloads • Should you really use all HW treads at all times?
  • 17. What if I just could… Class MergeSorter<int[]> … minor plumbing … Function compute(m) if length(m) > THRESHHOLD return merge_sort(m) leftWorker = New MergeSorter(firstHalf(m)) rightWorker = New MergeSorter(secondHalf(m)) invokeAll (leftWorker, rightWorker) return merge(leftWorker.result, rightWorker.result) http://download.oracle.com/javase/tutorial/essential/concurrency/forkjoin.html
  • 18. Fork/Join • Built-in scalability – New threads created on demand by framework – Efficient work balancing using work stealing • Easy to use! – No complex synchronization
  • 19. Nice. What else? “naming anything „newest‟ because there's already an older version named „new‟ should be […] sign that it won't be for very long...” Nords Law “Its when you get „Newest2‟ that you know you really are in trouble” Topics corollary
  • 20. NIO.2 • Better file system support – OS agnostic – ZIP and JAR – Directory watch http://download.oracle.com/javase/tutorial/essential/io/fileio.html
  • 21. Project Coin • A number of small language improvements
  • 24. Graphics • Optimized Java2D pipeline • Swing JLayer Component
  • 25. Networking • SDP support • SCTP support • Vista IPv6 stack
  • 26. Security • Native ECC provider • TLS 1.2 • DEP and ASLR on windows
  • 27. Updates • JAXP • JAX-WS, JAXB • Unicode 6 • BCP47 and UTR35 • Separate locale and interface • JDBC 4.1 • Rowset 1.1 • Stylesheets for Javadocs!
  • 28. Lets get ready to rrrruuuumm...
  • 29. 2010 Eclipse Community survey 69,8 + 21.7% vs 4.6% n.b. Eclipse users
  • 30. What about Stockholm & Sweden? • Development – JVM – Mission Control – Sustaining Engineering – ... • Power? – Senior developers – Inbound PM – 2 of 4 architects – (in Exile) Dev Manager.