34
Evolución de la Plataforma Java y lo que Significa para Ti Gustavo Garnica

Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti

Evolución de la Plataforma Java y lo que Significa para Ti

Gustavo Garnica

Page 2: Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti

Java SE and EE: The platform evolution, and what it means to you

Gustavo Garnica

Middleware Architect

Page 3: Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti

3

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 4: Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti

4

What does Java 7 (and 8) mean to you?

• IT professional

• Non-Java Developer

• Java SE Developer

• Java EE Developer

• Oracle

Page 5: Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti

5

IT professional

Page 6: Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti

6

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

Page 7: Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti

7

Page 8: Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti

8

Non-Java Developer

Page 9: Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti

9

JSR 292

• Invokedynamic

Page 10: Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti

10

Java Developer

Page 11: Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti

11

Project Coin – JSR 334

http://www.flickr.com/photos/chefranden/908539119/

Page 12: Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti

12

Coin (1) Strings in switch

String s = ...

switch(s) {

case "foo":

processFoo(s);

break;

}

Page 13: Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti

13

Coin (2) Changes to literals

• 1234_5678

• 1_2_3_4__5_6_7_8L

• 0b0001_0010_0100_1000

• 3.141_592_653_589_793d

• 0x1.ffff_ffff_ffff_fP1_023 // Double.MAX_VALUE

Page 14: Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti

14

Coin (3) Multi Catch

try {

doWork(file);

} catch (IOException ex) {

logger.log(ex);

}

catch (SQLException ex) {

logger.log(ex);

}

try {

doWork(file);

} catch (IOException|SQLException

ex) { logger.log(ex);

}

Page 15: Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti

15

Coin (4) Diamond operator

Map<String,List<String>> m = new HashMap<String,List<String>>();

Map<String,List<String>> m = new HashMap<>();

Page 16: Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti

16

Coin (5) Try with resources

try (AutoclosableResource) {

// Do stuff

}

// closed here

Page 17: Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti

17

Concurrency and Collections Updates - JSR 166yLightweight Fork/Join Framework

1970 1975 1980 1985 1990 1995 2000 2005 2010

1

10

100

1,000

10,000

1,000,000

100,000

10,000,000

Clock (MHz)

Transistors (1,000s)

Page 18: Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti

18

Network and File System – JSR 203NIO.2

• NIO.2

• NIO.2 file system Provider for ZIP and JAR Archives

• SCTP (Stream Control Transmission Protocol)

• SDP (Sockets Direct Protocol)

• (New) Enhanced JMX agent and MBeans

Page 19: Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti

19

Security

• Native ECC (Elliptic Curve Cryptography)

• ASLR (Address space layout randomization)

• DEP (Data Execution Prevention) – Windows Only

Page 20: Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti

20

Internationalization

• Unicode 6.0

• IETF BCP47 and UTR35

– One language many character codes

– Three-letter base language codes

• Separate user locale and user interface locale

Page 21: Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti

21

Other Enhancements

• JAXP 1.4.4

• JAXWS 2.2

• JAXB 2.2

• JDBC 4.1

• Rowset 1.1

• Javadoc support for stylesheets

Page 22: Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti

22

JDK 7 Platform Support

• Windows x86– Server 2008, Server 2008 R2, 7 & 8 (when it GAs)

– Windows Vista, XP

• Linux x86– Oracle Linux 5.5+, 6.x

– Red Hat Enterprise Linux 5.5+, 6.x

– SuSE Linux Enterprise Server 10.x, 11.x

– Ubuntu Linux 10.04 LTS, 11.04

• Solaris x86/SPARC– Solaris 10.9+, 11.x

• Apple OSX x86– will be supported post-GA, detailed plan TBD

Note: JDK 7 should run on pretty much any Windows/Linux/Solaris.

Page 23: Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti

23

JDK 8 – Fall/Winter 2012

• Modularization

• Language and VM Support

• Platform Modularization

• Project Lambda

• Lambda Expressions

• Default Methods

• Bulk Data Operations

• Annotations on Java types (JSR 308)

• More Small Language Enhancements

• Project Coin part 2

Features from “Plan B”

• Serialization fixes

• Multicast improvements

• Java APIs for accessing location, compass and other ”environmental” data (partially exists in ME)

• Improved language interop

• Faster startup/warmup

• Dependency injection (JSR 330)

• Include select enhancements from Google Guava

• Small Swing enhancements

• More security/crypto features, improved support for x.509-style certificates etc

• Internationalization: non-Gregorian calendars, more configurable sorting

• Date and Time (JSR 310)

• Process control API

Other Things On Oracle’s Wish List*

* Many of these will undoubtedly NOT make JDK 8.

Page 24: Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti

24

Java EE Developer

Page 25: Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti

25

The Cloud is Making Developers Restless

• Enterprise developers want cloud solutions from their own IT

– IT provides the SLA

– Developers want:

• Hosted cloud services

• On-demand provisioning

• Reliable scale

• Virtualization is a valuable tool

• Java EE has solved similar challenges for enterprises in the

past

Page 26: Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti

26

Today’s Cloud Offerings Are Vendor-Specific

Infrastructure as

a Service

Platform as

a Service

Software as

a Service

Page 27: Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti

27

Core Java EE7 specification work

• Leverage solid EE6 Uptake and Developer Reception

• EE7 Underway with Broad Industry Participation

– New Caching and Data Grid APIs

– New JMS Includes Simplified Programming Model and Cloud

Enablement

– Expanded REST Support with Client API, Filters, Validation

– Multi-Tenancy Awareness Across the Platform

– Dependency Injection More Integrated and Unified Across Java

EE

Page 28: Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti

28

Java EE for the Cloud : JSR 342

• Evolution, not revolution

• More easily operate on private/public clouds

– Multi-tenancy

– Elasticity

• Better isolation between applications

• Potential standard APIs for Caching, etc.

• Common management and monitoring interfaces

• Better packaging

Page 29: Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti

29

Oracle

Page 30: Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti

30

Oracle’s Java StrategyIn Order of Priority

1. A Vibrant Java Ecosystem

2. Generate Revenue.

3. Lower Costs

Page 31: Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti

31

JVM ConvergenceProject “HotRockit”

• Java SE 7 Support

• Rebranding

• No PermGen (stretch goal)

• Improved JMX Agent

• Command line servicability tool (jrcmd)

• JRockit Mission Control Console support

JDK 7 GA

= Premium Feature

• Performance

• Initial JRockit Flight Recorder Support

JDK 7 Update X

• Better performance

• Improved command line servicability (jrcmd)

• G1 complete as CMS replacement

• Non-contiguous heaps

• Complete JRockit Flight Recorder Support

• JRockit Virtual Edition Support

• Soft Real Time GC

JDK 7 Update Y

• Java SE 8 Support

• All performance features from JRockit ported

• I/O Performance

• JIT Optimizations

• All servicability features from JRockit ported

• Compiler controls

• Verbose logging

• JRockit Mission Control Memleak Tool Support

JDK 8 GA

Page 32: Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti

32

Get Involved!

• Participate in the OpenJDK Community

http://openjdk.java.net

• Become a member of the Oracle Technology

Network

http://oracle.com/OTN

• Join a Java User Group near you

http://java.net/jugs/java-user-groups

• Get involved with the Java Community Process

http://jcp.org

Page 33: Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti

33

Page 34: Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti

34