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
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

Viewers also liked

Sonar
SonarSonar
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
Squeed
 
Agile Database Development with Liquibase
Agile Database Development with LiquibaseAgile Database Development with Liquibase
Agile Database Development with Liquibase
Tim Berglund
 
Database Refactoring With Liquibase
Database Refactoring With LiquibaseDatabase Refactoring With Liquibase
Database Refactoring With Liquibase
Tim Berglund
 
Javaforum indy
Javaforum indyJavaforum indy
Javaforum indy
Squeed
 
Javaforum coin
Javaforum coinJavaforum coin
Javaforum coin
Squeed
 
Groovy moppingjavaforum
Groovy moppingjavaforumGroovy moppingjavaforum
Groovy moppingjavaforum
Squeed
 

Viewers also liked (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
 

Similar to Javaforum 20110915

Object Oriented Programming-JAVA
Object Oriented Programming-JAVAObject Oriented Programming-JAVA
Object Oriented Programming-JAVA
Home
 
Java Future S Ritter
Java Future S RitterJava Future S Ritter
Java Future S Ritter
catherinewall
 
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 2010
Arun Gupta
 
Scala and jvm_languages_praveen_technologist
Scala and jvm_languages_praveen_technologistScala and jvm_languages_praveen_technologist
Scala and jvm_languages_praveen_technologist
pmanvi
 
Reactive java programming for the impatient
Reactive java programming for the impatientReactive java programming for the impatient
Reactive java programming for the impatient
Grant Steinfeld
 
Java1 in mumbai
Java1 in mumbaiJava1 in mumbai
Java1 in mumbai
vibrantuser
 
Building Concurrent WebObjects applications with Scala
Building Concurrent WebObjects applications with ScalaBuilding Concurrent WebObjects applications with Scala
Building Concurrent WebObjects applications with Scala
WO Community
 
It 405 materi 2 java dasar
It 405 materi 2   java dasarIt 405 materi 2   java dasar
It 405 materi 2 java dasar
Ayi Purbasari
 
The Cloud-natives are RESTless @ JavaOne
The Cloud-natives are RESTless @ JavaOneThe Cloud-natives are RESTless @ JavaOne
The Cloud-natives are RESTless @ JavaOne
Konrad 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 .pdf
Ana-Maria Mihalceanu
 
Commit to excellence - Java in containers
Commit to excellence - Java in containersCommit to excellence - Java in containers
Commit to excellence - Java in containers
Red Hat Developers
 
Understanding the Dalvik Virtual Machine
Understanding the Dalvik Virtual MachineUnderstanding the Dalvik Virtual Machine
Understanding the Dalvik Virtual Machine
National Cheng Kung University
 
The Java Content Repository
The Java Content RepositoryThe Java Content Repository
The Java Content Repository
nobby
 
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
Salesforce Developers
 
Scotas - Oracle Open World Sao Pablo
Scotas - Oracle Open World Sao PabloScotas - Oracle Open World Sao Pablo
Scotas - Oracle Open World Sao Pablo
Julian Arocena
 
Java 8 selected updates
Java 8 selected updatesJava 8 selected updates
Java 8 selected updates
Vinay H G
 
Core Java
Core JavaCore Java
Core Java
Prakash Dimmita
 
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
Gal Marder
 
java slides
java slidesjava slides
java slides
RizwanTariq18
 

Similar to 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
 

Recently uploaded

“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
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
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
Pixlogix Infotech
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
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
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Zilliz
 
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
 
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
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 

Recently uploaded (20)

“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
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...
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
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...
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
 
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
 
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...
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 

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.