Javaforum 20110915

832 views

Published on

Java 7 har nyss släppts publikt. Vad innehåller den? Vad betyder det för dig? Vilka saker borde du titta extra på? Coin kommer inte att revolutionera din kod, men det kommer att göra den mer kompakt och bugresistent. Invokedynamic är en revolution, för de som är språkastronauter. Det som troligen är värt störst del av din tid är det nya fork/join-ramverket.
Mikael kommer även att förklara lite om vad vi gör inom Java i sverige, hur Oracles Java-organisation ser ut och vem som bestämmer vad.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
832
On SlideShare
0
From Embeds
0
Number of Embeds
254
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Javaforum 20110915

  1. 1. <Insert Picture Here>Java @OracleMikael VidstedtJVM Architect, Oracle Java Platform Group
  2. 2. The following is intended to outline our generalproduct direction. It is intended for informationpurposes only, and may not be incorporated into anycontract. It is not a commitment to deliver anymaterial, code, or functionality, and should not berelied upon in making purchasing decisions.The development, release, and timing of anyfeatures or functionality described for Oracle’sproducts remains at the sole discretion of Oracle.
  3. 3. http://commons.wikimedia.org/wiki/File:Alexander_cuts_the_Gordian_Knot.jpg
  4. 4. Java SWOT – Sun daysStrengths 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 performanceOpportunities Threats•Multi Core •Next big thing•JVM interop •Walled garden platforms•Cloud •Not attractive to new developers •Uncertain future
  5. 5. Java SWOT – OracleStrengths 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 performanceOpportunities Threats•Multi Core •Next big thing•JVM interop •Walled garden platforms•Cloud •Not attractive to new developers •Uncertain future •Bad name in community
  6. 6. Oracle’s Java StrategyIn Order of Priority1. A Vibrant Java Ecosystem2. Generate Revenue3. Lower Costs
  7. 7. Java 7
  8. 8. Java 7 = Java 7 + Java 8 (a.k.a. Plan B)
  9. 9. Rebranding
  10. 10. 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
  11. 11. 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
  12. 12. Merge Sort, Single threadedfunction 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
  13. 13. Merge Sort, Double threadedfunction 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
  14. 14. Merge Sort, n - threadsfunction 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
  15. 15. Easy! Right?• Return values from threads• Synchronization and locks• Setup cost• Unbalanced workloads• Should you really use all HW treads at all times?
  16. 16. 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
  17. 17. Fork/Join• Built-in scalability – New threads created on demand by framework – Efficient work balancing using work stealing• Easy to use! – No complex synchronization
  18. 18. Nice. What else?“naming anything „newest‟ because theres already an older version named „new‟ should be […] sign that it wont be for very long...” Nords Law“Its when you get „Newest2‟ that you know you really are in trouble” Topics corollary
  19. 19. NIO.2• Better file system support – OS agnostic – ZIP and JAR – Directory watch http://download.oracle.com/javase/tutorial/essential/io/fileio.html
  20. 20. Project Coin• A number of small language improvements
  21. 21. JSR 292• Invokedynamic
  22. 22. Graphics
  23. 23. Graphics• Optimized Java2D pipeline• Swing JLayer Component
  24. 24. Networking• SDP support• SCTP support• Vista IPv6 stack
  25. 25. Security• Native ECC provider• TLS 1.2• DEP and ASLR on windows
  26. 26. Updates• JAXP• JAX-WS, JAXB• Unicode 6• BCP47 and UTR35• Separate locale and interface• JDBC 4.1• Rowset 1.1• Stylesheets for Javadocs!
  27. 27. Lets get ready to rrrruuuumm...
  28. 28. 2010 Eclipse Community survey 69,8 + 21.7% vs 4.6%n.b. Eclipse users
  29. 29. What about Stockholm & Sweden?• Development – JVM – Mission Control – Sustaining Engineering – ...• Power? – Senior developers – Inbound PM – 2 of 4 architects – (in Exile) Dev Manager.

×