SlideShare uma empresa Scribd logo
1 de 32
Baixar para ler offline
<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
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

Mais conteúdo relacionado

Destaque

Liquibase få kontroll på dina databasförändringar
Liquibase   få kontroll på dina databasförändringarLiquibase   få kontroll på dina databasförändringar
Liquibase få kontroll på dina databasförändringarSqueed
 
Agile Database Development with Liquibase
Agile Database Development with LiquibaseAgile Database Development with Liquibase
Agile Database Development with LiquibaseTim Berglund
 
Database Refactoring With Liquibase
Database Refactoring With LiquibaseDatabase Refactoring With Liquibase
Database Refactoring With LiquibaseTim Berglund
 
Javaforum indy
Javaforum indyJavaforum indy
Javaforum indySqueed
 
Javaforum coin
Javaforum coinJavaforum coin
Javaforum coinSqueed
 
Groovy moppingjavaforum
Groovy moppingjavaforumGroovy moppingjavaforum
Groovy moppingjavaforumSqueed
 

Destaque (7)

Sonar
SonarSonar
Sonar
 
Liquibase få kontroll på dina databasförändringar
Liquibase   få kontroll på dina databasförändringarLiquibase   få kontroll på dina databasförändringar
Liquibase få kontroll på dina databasförändringar
 
Agile Database Development with Liquibase
Agile Database Development with LiquibaseAgile Database Development with Liquibase
Agile Database Development with Liquibase
 
Database Refactoring With Liquibase
Database Refactoring With LiquibaseDatabase Refactoring With Liquibase
Database Refactoring With Liquibase
 
Javaforum indy
Javaforum indyJavaforum indy
Javaforum indy
 
Javaforum coin
Javaforum coinJavaforum coin
Javaforum coin
 
Groovy moppingjavaforum
Groovy moppingjavaforumGroovy moppingjavaforum
Groovy moppingjavaforum
 

Semelhante a Javaforum 20110915

Object Oriented Programming-JAVA
Object Oriented Programming-JAVAObject Oriented Programming-JAVA
Object Oriented Programming-JAVAHome
 
Java Future S Ritter
Java Future S RitterJava Future S Ritter
Java Future S Rittercatherinewall
 
What is Java Technology (An introduction with comparision of .net coding)
What is Java Technology (An introduction with comparision of .net coding)What is Java Technology (An introduction with comparision of .net coding)
What is Java Technology (An introduction with comparision of .net coding)Shaharyar khan
 
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 2010Arun Gupta
 
Scala and jvm_languages_praveen_technologist
Scala and jvm_languages_praveen_technologistScala and jvm_languages_praveen_technologist
Scala and jvm_languages_praveen_technologistpmanvi
 
Reactive java programming for the impatient
Reactive java programming for the impatientReactive java programming for the impatient
Reactive java programming for the impatientGrant Steinfeld
 
Building Concurrent WebObjects applications with Scala
Building Concurrent WebObjects applications with ScalaBuilding Concurrent WebObjects applications with Scala
Building Concurrent WebObjects applications with ScalaWO Community
 
It 405 materi 2 java dasar
It 405 materi 2   java dasarIt 405 materi 2   java dasar
It 405 materi 2 java dasarAyi Purbasari
 
The Cloud-natives are RESTless @ JavaOne
The Cloud-natives are RESTless @ JavaOneThe Cloud-natives are RESTless @ JavaOne
The Cloud-natives are RESTless @ JavaOneKonrad Malawski
 
How Java 19 Influences the Future of Your High-Scale Applications .pdf
How Java 19 Influences the Future of Your High-Scale Applications .pdfHow Java 19 Influences the Future of Your High-Scale Applications .pdf
How Java 19 Influences the Future of Your High-Scale Applications .pdfAna-Maria Mihalceanu
 
Commit to excellence - Java in containers
Commit to excellence - Java in containersCommit to excellence - Java in containers
Commit to excellence - Java in containersRed Hat Developers
 
The Java Content Repository
The Java Content RepositoryThe Java Content Repository
The Java Content Repositorynobby
 
Build Cloud Applications with Akka and Heroku
Build Cloud Applications with Akka and HerokuBuild Cloud Applications with Akka and Heroku
Build Cloud Applications with Akka and HerokuSalesforce Developers
 
Scotas - Oracle Open World Sao Pablo
Scotas - Oracle Open World Sao PabloScotas - Oracle Open World Sao Pablo
Scotas - Oracle Open World Sao PabloJulian Arocena
 
Java 8 selected updates
Java 8 selected updatesJava 8 selected updates
Java 8 selected updatesVinay H G
 
Multi-threading in the modern era: Vertx Akka and Quasar
Multi-threading in the modern era: Vertx Akka and QuasarMulti-threading in the modern era: Vertx Akka and Quasar
Multi-threading in the modern era: Vertx Akka and QuasarGal Marder
 

Semelhante a Javaforum 20110915 (20)

Object Oriented Programming-JAVA
Object Oriented Programming-JAVAObject Oriented Programming-JAVA
Object Oriented Programming-JAVA
 
Java Future S Ritter
Java Future S RitterJava Future S Ritter
Java Future S Ritter
 
What is Java Technology (An introduction with comparision of .net coding)
What is Java Technology (An introduction with comparision of .net coding)What is Java Technology (An introduction with comparision of .net coding)
What is Java Technology (An introduction with comparision of .net coding)
 
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
 
Scala and jvm_languages_praveen_technologist
Scala and jvm_languages_praveen_technologistScala and jvm_languages_praveen_technologist
Scala and jvm_languages_praveen_technologist
 
Reactive java programming for the impatient
Reactive java programming for the impatientReactive java programming for the impatient
Reactive java programming for the impatient
 
Java1 in mumbai
Java1 in mumbaiJava1 in mumbai
Java1 in mumbai
 
Building Concurrent WebObjects applications with Scala
Building Concurrent WebObjects applications with ScalaBuilding Concurrent WebObjects applications with Scala
Building Concurrent WebObjects applications with Scala
 
It 405 materi 2 java dasar
It 405 materi 2   java dasarIt 405 materi 2   java dasar
It 405 materi 2 java dasar
 
The Cloud-natives are RESTless @ JavaOne
The Cloud-natives are RESTless @ JavaOneThe Cloud-natives are RESTless @ JavaOne
The Cloud-natives are RESTless @ JavaOne
 
How Java 19 Influences the Future of Your High-Scale Applications .pdf
How Java 19 Influences the Future of Your High-Scale Applications .pdfHow Java 19 Influences the Future of Your High-Scale Applications .pdf
How Java 19 Influences the Future of Your High-Scale Applications .pdf
 
Commit to excellence - Java in containers
Commit to excellence - Java in containersCommit to excellence - Java in containers
Commit to excellence - Java in containers
 
Understanding the Dalvik Virtual Machine
Understanding the Dalvik Virtual MachineUnderstanding the Dalvik Virtual Machine
Understanding the Dalvik Virtual Machine
 
The Java Content Repository
The Java Content RepositoryThe Java Content Repository
The Java Content Repository
 
Build Cloud Applications with Akka and Heroku
Build Cloud Applications with Akka and HerokuBuild Cloud Applications with Akka and Heroku
Build Cloud Applications with Akka and Heroku
 
Scotas - Oracle Open World Sao Pablo
Scotas - Oracle Open World Sao PabloScotas - Oracle Open World Sao Pablo
Scotas - Oracle Open World Sao Pablo
 
Java 8 selected updates
Java 8 selected updatesJava 8 selected updates
Java 8 selected updates
 
Core Java
Core JavaCore Java
Core Java
 
Multi-threading in the modern era: Vertx Akka and Quasar
Multi-threading in the modern era: Vertx Akka and QuasarMulti-threading in the modern era: Vertx Akka and Quasar
Multi-threading in the modern era: Vertx Akka and Quasar
 
java slides
java slidesjava slides
java slides
 

Último

Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
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
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
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
 
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
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
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
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
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
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 

Último (20)

Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
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
 
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
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
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
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
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
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 

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
  • 6.
  • 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.