Oracle Technology Network (OTN) Developer Day

Leave a comment

November 24, 2010 by huionn

I attended OTN Developer Day today. One of the speaker is Lee Chuk-Munn. His name can be googled on internet (such as Seven Habits of Highly Effective Developers).

After his presentation, I feel that Sun (or Oracle?) is listening to community voices There are a few enhancements in Java 7 & 8 that will simplify development (for application developers and framework designers). He mentioned about Project Lambda 2.0 and Project Coin.

1) closure (Project Lambda http://openjdk.java.net/projects/lambda/)

I don’t really understand the computer science terms related to closure (such as lambda). I just know in practice, the effect of closure can be achieved by anonymous inner class. What makes closure in closure in Java 8 special is its concise syntax. Single Abstract Method (SAM) of interface or class can be replace with lambda expression

public interface CallbackHandler { 
    public void callback(Context c);
}   CallbackHandler cb = { c -> System.out.println("pippo") }; <---- { arguments –> implementation }
http://www.baptiste-wicht.com/2010/07/state-of-the-lambda/

 

To my surprise, the motivation behind closure is to utilize parallel computing…

2) Project Coin (http://openjdk.java.net/projects/coin/)

Sorted based on my preference (top to bottom)

  • try-with-resources statement
    Currently, it is extremely verbose to write truly robust Java code to prevent/minimize resource leak if exception happens. Every resource need to be surround by try … finally block. In case of exception during closing a resource, the exception need to be caught so that other resource will still be closed.
    Now the new syntax which is very neat

private static void customBufferStreamCopy(File source, File target) {
    try (InputStream fis = new FileInputStream(source);
        OutputStream fos = new FileOutputStream(target)){   byte[] buf = new byte[8192];   int i;
        while ((i = fis.read(buf)) != -1) {
            fos.write(buf, 0, i);
        }
    }
    catch (Exception e) {
        e.printStackTrace();
    }
}

http://www.baptiste-wicht.com/2010/08/java-7-try-with-resources-statement/

(personal opinion: this will make Spring template obsolete)

  • Multi-catch and more precise rethrow

  • Improved type inference for generic instance creation (diamond)
  • Strings in switch
  • Binary integral literals and underscores in numeric literals

3) Annotation based configuration in Java EE 6

4) web-fragment.xml to simplify framework deployment (quite similar to faces-config.xml in Java EE 5)

In conclusion, I am excited about the new features in Java 7 (2011) and Java 8 (2012). But the reality is that they will not be in mainstream within 2-3 years (many software companies are still using Java 1.4).

Links:

Keynote Session:Java – The Language of the Future
Lee Chuk Mun, Software Developer, Oracle Corporation
Technical Session :Java Development Kit 7 and Java SE 7
Angela Caideco, Technology Evangelist, Oracle Corporation
Technical Session :Java FX 2.0
Angela Caideco, Technology Evangelist, Oracle Corporation
Technical Session :What’s new in Java EE 6.0
Lee Chuk Mun, Software Developer, Oracle Corporation
Technical Session :Java Persistence API Best Practices
Lee Chuk Mun, Software Developer, Oracle Corporation
Technical Session :Dynamic instrumentation of Java Application using DTrace and Btrace
Peter Karlsson, Technical Product Management, Oracle Corporation


In a recent interview (http://www.infoq.com/interviews/josh-bloch-java-prog), Google’s Josh Bloch shares his views on the open-source Java landscape as well as on the future of the Java language.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: