javaforum 20110915

32
<Insert Picture Here> Java @Oracle Mikael Vidstedt JVM Architect, Oracle Java Platform Group

Upload: squeed

Post on 01-Nov-2014

800 views

Category:

Technology


0 download

DESCRIPTION

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.

TRANSCRIPT

Page 1: Javaforum 20110915

<Insert Picture Here>

Java @Oracle

Mikael Vidstedt

JVM Architect, Oracle Java Platform Group

Page 2: Javaforum 20110915

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.

Page 3: Javaforum 20110915

http://commons.wikimedia.org/wiki/File:Alexander_cuts_the_Gordian_Knot.jpg

Page 4: Javaforum 20110915

Java SWOT – Sun days

Strengths

• Most used programming language

• Garbage collection

• Community driven

• Adaptive runtime

• Install base

• Strong community

• High performance

Weaknesses

•No new releases

•Steward out of cash

•No good Smart phone story

Opportunities

•Multi Core

•JVM interop

•Cloud

Threats

•Next big thing

•Walled garden platforms

•Not attractive to new developers

•Uncertain future

Page 5: Javaforum 20110915

Java SWOT – Oracle

Strengths

•Most used programming language

•Garbage collection

•Community driven

•Adaptive runtime

•Write once…

•Strong community

•High performance

Weaknesses

•No new releases

•Steward out of cash

•No good Smart phone story

Opportunities

•Multi Core

•JVM interop

•Cloud

Threats

•Next big thing

•Walled garden platforms

•Not attractive to new developers

•Uncertain future

•Bad name in community

Page 6: Javaforum 20110915
Page 7: Javaforum 20110915

Oracle’s Java StrategyIn Order of Priority

1. A Vibrant Java Ecosystem

2. Generate Revenue

3. Lower Costs

Page 8: Javaforum 20110915

Java 7

Page 9: Javaforum 20110915

Java 7 = Java 7 + Java 8(a.k.a. Plan B)

Page 10: Javaforum 20110915

Rebranding

Page 11: Javaforum 20110915

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 ,

Specification-Vendor

Oracle Corporation

src/share/classes/javax/management/build.xml ,

Implementation-Vendor

“Source bundle from Oracle

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

ava, SERIALIZER_VM_VENDOR

Oracle Corporation

Page 12: Javaforum 20110915

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

Page 13: Javaforum 20110915

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

Page 14: Javaforum 20110915

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

Page 15: Javaforum 20110915

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

Page 16: Javaforum 20110915

Easy! Right?

• Return values from threads

• Synchronization and locks

• Setup cost

• Unbalanced workloads

• Should you really use all HW treads at all times?

Page 17: Javaforum 20110915

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

Page 18: Javaforum 20110915

Fork/Join

• Built-in scalability

– New threads created on demand by framework

– Efficient work balancing using work stealing

• Easy to use!

– No complex synchronization

Page 19: Javaforum 20110915

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

Page 20: Javaforum 20110915

NIO.2

• Better file system support

– OS agnostic

– ZIP and JAR

– Directory watch

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

Page 21: Javaforum 20110915

Project Coin

• A number of small language improvements

Page 22: Javaforum 20110915

JSR 292

• Invokedynamic

Page 23: Javaforum 20110915

Graphics

Page 24: Javaforum 20110915

Graphics

• Optimized Java2D pipeline

• Swing JLayer Component

Page 25: Javaforum 20110915

Networking

• SDP support

• SCTP support

• Vista IPv6 stack

Page 26: Javaforum 20110915

Security

• Native ECC provider

• TLS 1.2

• DEP and ASLR on windows

Page 27: Javaforum 20110915

Updates

• JAXP

• JAX-WS, JAXB

• Unicode 6

• BCP47 and UTR35

• Separate locale and interface

• JDBC 4.1

• Rowset 1.1

• Stylesheets for Javadocs!

Page 28: Javaforum 20110915

Lets get ready to rrrruuuumm...

Page 29: Javaforum 20110915

2010 Eclipse Community survey

69,8 + 21.7%

vs

4.6%

n.b. Eclipse users

Page 30: Javaforum 20110915

What about Stockholm & Sweden?

• Development

– JVM

– Mission Control

– Sustaining Engineering

– ...

• Power?

– Senior developers

– Inbound PM

– 2 of 4 architects

– (in Exile) Dev Manager.

Page 31: Javaforum 20110915
Page 32: Javaforum 20110915