Monday Sep 23, 2013

The JavaOne 2013 Technical Keynote

by Timothy Beneke

Mark Reinhold, Oracle’s Chief Architect, the Java Platform Group, took the stage to kick off Sunday’s technical keynote at the Moscone Center. He began by quoting “father of Java” James Gosling. For Java to thrive, it must maintain what Gosling called the “feel of Java”. In other words, it must retain the key values of readability, simplicity, and universality.

“If we keep those,” said Reinhold, “then Java will remain not just productive but fun. It is not enough to simply add popular features each year.”

Lambda Expressions – The Single Largest Upgrade Ever
He turned to lambda expressions, which he described as the single largest upgrade to the programming model ever -- larger even than generics. “This is the first time we have done a carefully coordinated co-evolution of the JVM, the language, and the libraries all together – and the results still feel like Java,” said Reinhold.

He then welcomed Oracle Java Language Architect, Brian Goetz, to share the stage and began by remarking that while most developers understand that lambda offers a simple way to express code as data, some are not sure how it helps Java. Goetz responded that lambda expressions would more than help Java. “It’s going to change the way we all program in Java every day,” he explained. “Programming well is about finding the right abstractions. We want the code we write to look like the problem statements it’s trying to solve, so we can look at it and immediately know it’s correct. Java has always given us good tools for abstracting over data types. I wanted to do better in abstracting over patterns of behavior – that’s where lambda comes in.”

He illustrated this with some simple code that was, strictly speaking, “good” code, but weighed down with boilerplate and did not read like the problem statement it was trying to solve. It could be improved by using an inner class tool, but that too generated a lot of boilerplate. Reinhardt pointed out that improving the code made it less pleasant to work with, as if the developer was being punished for doing the right thing. This often causes developers to give up and do it the “dumb and ugly way”.

Lambdas can replace inner classes with a lambda expression which is simply an anonymous method that captures a behavior without a lot of syntactic boilerplate. “Lambdas are a nicer syntax,” said Goetz. “But they are also something deeper. It’s not just a compiler generating inner classes for you – it uses the invokedynamic feature to get more compact and higher performance code. It will make a qualitative difference in the way we program.”

If the right way to write a program is unpleasant, then people are less likely to do it according to Goetz. They are more tolerant of doing it the wrong way. He gave an example of how lambda expressions address this with the collections API involving a new abstraction to the JDK called stream and showed how to represent a simple query through applying a filter and mapping transformation, followed by an aggregation, in a way that is fused into one path without creating any intermediate weapons.

Reinhold summarized the key points: “So lambda brings 3 weapons to Java – syntax, performance and abstraction.”

“Plus parallelism,” Goetz added. He explained that Java 7 has the fork/join framework for parallel decomposition that is powerful, flexible, and highly efficient – but not the easiest thing to use. Goetz showed how lambdas enable better parallelism without needing to write fork join code: by asking the collection for a parallel stream it uses fork/join under the hood.

Lambda also helps with normal sequential code by making code clearer, less noisy, and easier to read. “When you have code that is hard to read, that’s where bugs come from. You are trying to maintain some code, you look at the code and think you know what it does, but don’t actually know what it does, and boom! – you’ve introduced a bug.”

All in all, the message was clear: Lambda expressions make Java code easier to read and easier to write.

Working with Lambda and the Collections Framework
For lambdas to be successful, they must work with the Java Collections Framework, which is now 15 years old. So an evolution of the interface was in order. Goetz’s team had to grow an interface over time without breaking implementations of the interface. They added a concept that allows developers to compatibly add a method to an interface, as long as a default implementation is provided.

Reinhold remarked that he has now written a couple of thousand lines of code with lambda features and really enjoyed it. “I can be more productive, and the end result still feels like Java,” he said.

To get started learning lambda expressions, Java developers can go to the OpenJDK Project Lambda page and download the developer preview builds there.

Reinhold reminded attendees that there is a great deal more in Java SE 8 besides lambda expressions. Developer preview builds can be downloaded at JDK8.java.net. “Now is a great time to download JDK 8 and take it for a spin. Every planned feature is in there. It’s reasonably stable and it passes almost all of the tests. If you have any feedback, please send it in!” said Reinhold. 

Playing Chess
In the rest of the technical keynote, Oracle’s John Ceccarelli, head of engineering for Oracle’s NetBeans team and Oracle’s JavaFX architect Jasper Potts, arrived on stage to demonstrate a Duke pad running real Java via a chess program that was connected to a server. The iPad operated through an HTML5 client talking to a Java EE 7 back end with an EE server in charge of  messaging, communication, game state, and so on, with clients hook into it – all built with NetBeans. Jasper Potts further showed off the chess demo with an HTML5 client using a front end to a chess server that was managing the chess games. Then a robot, powered by Java ME 8, took over the game.

Oracle Software Engineer, Santiago Pericas Geertsen, who built the chess server, also described how it was built with 5 distinct functional modules.

In sum, attendees witnessed a server running Java EE 7 hooked up with a variety of clients, some written in HTML5, one written in JavaFX on a Duke pad, one using JavaFX 3D on a powerful laptop, plus a Java ME 8-powered robot contributing to the ongoing chess game. In the process, the powers of the Raspberry Pi were demonstrated.

Developers were encouraged to jump in the water, go for a swim, and have fun with NetBeans and Java embedded.

Java SE 9 and Beyond
Wrapping it up, Reinhold peered a bit into the future and suggested some possible directions for Java, some of which are already in development:

One is Java on GPUs, graphic processing units. As GPUs are being used more and more widely to process big data he suggested that it would be good to make Java work directly with the GPU rather than having to call out to some primitive interface. An OpenJDK called Sumatra has people working on this.

Reinhold spoke of the need for reification. Java’s generics, added in 2004, are based on the notion of erasure for good technical reasons as a sound way to create a type system that supports migration compatibility. But this creates programming problems in which the erasure approach severely limits what can be expressed. Reinhold suggested that introducing some reification and eliminating the “annoying dichotomy between primitive and reference types” would be of value.

He mentioned JNI 2.0 and said, “It just shouldn’t be so hard to integrate Java with native code after all these years.”

He called for memory efficient data structures: “As we get into big data – all this boxing and pointer chasing makes it hard to do big data well. We could have less boxing and pointer chasing and load a lot more data into memory.”

Finally, he talked about the notion of a truly modular platform. “The compact profile in Java 8 is a start but it is not flexible enough. We need to continue to unify the Java SE and Java ME platforms.”

JDK 8

OpenJDK Project Lambda

Watch Keynote and Session Highlights on Demand

Friday Sep 21, 2012

JavaOne 2012 Conference Preview

A new article, by noted freelancer Steve Meloan, now up on otn/java, titled “JavaOne 2012 Conference Preview,” looks ahead to the fast approaching JavaOne 2012 Conference, scheduled for September 30-October 4 in San Francisco. The Conference will celebrate and highlight one of the world’s leading technologies. As Meloan states, “With 9 million Java developers worldwide, 5 billion Java cards in use, 3 billion mobile phones running Java, 1 billion Java downloads each year, and 100 percent of Blu-ray disk players and 97 percent of enterprise desktops running Java, Java is a technology that literally permeates our world.”

The 2012 JavaOne is organized under seven technical tracks:

* Core Java Platform
* Development Tools and Techniques
* Emerging Languages on the JVM
* Enterprise Service Architectures and the Cloud
* Java EE Web Profile and Platform Technologies
* Java ME, Java Card, Embedded, and Devices
* JavaFX and Rich User Experiences

Conference keynotes will lay out the Java roadmap. For the Sunday keynote, such Oracle luminaries as Cameron Purdy, Vice President of Development; Nandini Ramani, Vice President of Engineering, Java Client and Mobile Platforms; Richard Bair, Chief Architect, Client Java Platform; and Mark Reinhold, Chief Architect, Java Platform will be presenting.

For the Thursday IBM keynote, Jason McGee, Distinguished Engineer and Chief Architect for IBM PureApplication System, and John Duimovich, Java CTO and IBM Distinguished Engineer, will explore Java and IBM's cloud-based initiatives.
All in all, the JavaOne 2012 Conference should be as exciting as ever.

Link to the article here.

Originally published on blogs.oracle.com/javaone.

Friday Nov 18, 2011

Blog Buzz - Devoxx 2011

Some day I will make it to Devoxx – for now, I’m content to vicariously follow the blogs of attendees and pick up on what’s happening.  I’ve been doing more blog "fishing," looking for the best commentary on 2011 Devoxx. There’s plenty of food for thought – and the ideas are not half-baked.

The bloggers are out in full, offering useful summaries and commentary on Devoxx goings-on.

Constantin Partac, a Java developer and a member of Transylvania JUG, a community from Cluj-Napoca/Romania, offers an excellent summary of the Devoxx keynotes.

Here’s a sample:

“Oracle Opening Keynote and JDK 7, 8, and 9 Presentation
•    Oracle is committed to Java and wants to provide support for it on any device.
•    JSE 7 for Mac will be released next week.
•    Oracle would like Java developers to be involved in JCP, to adopt a JSR and to attend local JUG meetings.
•    JEE 7 will be released next year.
•    JEE 7 is focused on cloud integration, some of the features are already implemented in glassfish 4 development branch.
•    JSE 8 will be release in summer of 2013 due to “enterprise community request” as they can not keep the pace with an 18    month release cycle.
•    The main features included in JSE8 are lambda support, project Jigsaw, new Date/Time API, project Coin++ and adding   support for sensors.

JSE 9 probably will focus on some of these features:
1.    self tuning JVM
2.    improved native language integration
3.    processing enhancement for big data
4.    reification (adding runtime class type info for generic types)
5.    unification of primitive and corresponding object classes
6.    meta-object protocol in order to use type and methods define in other JVM languages
7.    multi-tenancy
8.    JVM resource management”

Thanks Constantin!

Ivan St. Ivanov, of SAP Labs Bulgaria, also commented on the keynotes with a different focus.  He summarizes Henrik Stahl’s look ahead to Java SE 8 and JavaFX 3.0; Cameron Purdy on Java EE and the cloud; celebrated Java Champion Josh Bloch on what’s good and bad about Java; Mark Reinhold’s quick look ahead to Java SE 9; and Brian Goetz on lambdas and default methods in Java SE 8.

Here’s St. Ivanov’s account of Josh Bloch’s comments on the pluses of Java:

“He started with the virtues of the platform. To name a few:

    Tightly specified language primitives and evaluation order – int is always 32 bits and operations are executed always from left  to right, without compilers messing around
    Dynamic linking – when you change a class, you need to recompile and rebuild just the jar that has it and not the whole application
    Syntax  similarity with C/C++ – most existing developers at that time felt like at home
    Object orientations – it was cool at that time as well as functional programming is today
    It was statically typed language – helps in faster runtime, better IDE support, etc.
    No operator overloading – well, I’m not sure why it is good. Scala has it for example and that’s why it is far better for defining DSLs. But I will not argue with Josh.”

It’s worth checking out St. Ivanov’s summary of Bloch’s views on what’s not so great about Java as well.

What's Coming in JAX-RS 2.0

Marek Potociar, Principal Software Engineer at Oracle and currently specification lead of Java EE RESTful web services API (JAX-RS), blogged on his talk about what's coming in JAX-RS 2.0, scheduled for final release in mid-2012.  

Here’s a taste:

“Perhaps the most wanted addition to the JAX-RS is the Client API, that would complete the JAX-RS story, that is currently server-side only. In JAX-RS 2.0 we are adding a completely interface-based and fluent client API that blends nicely in with the existing fluent response builder pattern on the server-side. When we started with the client API, the first proposal contained around 30 classes. Thanks to the feedback from our Expert Group we managed to reduce the number of API classes to 14 (2 of them being exceptions)! The resulting is compact while at the same time we still managed to create an API that reflects the method invocation context flow (e.g. once you decide on the target URI and start setting headers on the request, your IDE will not try to offer you a URI setter in the code completion). This is a subtle but very important usability aspect of an API…”

Obviously, Devoxx is a great Java conference, one that is hitting this year at a time when much is brewing in the platform and beginning to be anticipated.


Monday Oct 17, 2011

Evolutionary Next-Steps - Technical Keynote JavaOne 2011

Monday morning's Technical Keynote began with Doug Fisher, Corporate Vice President and General Manager of the Software and Services Group’s System Software Division, Intel. Fisher and a number of Intel colleagues reviewed Intel’s long association with Java, and their collaborative work with Oracle to optimize the Java platform (for both the JVM and Fusion Middleware) on Intel hardware.


From there, Ashok Joshi, Senior Director of Development NoSQL Database, briefly discussed performance tuning with Intel of the newly announced Oracle NoSQL Database product.

From Evolution to Revolution: Java 7 to Java 8

Following Joshi, Mark Reinhold, Chief Architect of the Java Platform Group at Oracle, reviewed the history of Java 7, and its “Plan B” paradigm of including Project Coin (JSR 334), InvokeDynamic (JSR 292), and the Fork/Join Framework in the just-released Java 7, while incorporating Project Jigsaw and Project Lambda in the upcoming Java 8. Reinhold then explored the evolutionary benefits of these key new features of the Java 7 release -- offering both greater ease of development, and significant performance benefits. “Not only are these features available in Java 7 today,” noted Reinhold, “but as of last week, they are now supported in all three of the major Java IDEs.”

Reinhold next detailed plans for the upcoming Java 8 release, which promises more revolutionary features beyond the evolutionary offerings of Java 7. Project Lambda (JSR 335) will bring closures to the Java programming language. And Project Jigsaw (JSR TBD) aims to define a standard module system -- not just for application code, but for the platform itself.

JavaFX 2.0 is Here!

Richard Bair, Chief Architect, Client Java Platform, Oracle, then dove into the official debut of JavaFX 2.0, along with some stunning demos of the new facility, presented by several colleagues. Java FX 2.0 is Oracle’s premier development environment for rich client applications. Bair emphasized that JavaFX 2.0 was designed to offer:

Cross Platform
Leverage Java
Advanced Tooling
Developer Productivity
Amazing User Interfaces.

“We naturally want user interfaces that look good and work well,” said Bair. “It used to be just eye candy, but now it’s becoming a required feature for the things we write. We’re announcing today the general availability of JavaFX 2.0, at JavaFX.com. We think this is going to be a really big deal in the industry.”

An important aspect of any UI technology is a good visual development tool, and Bair next announced early access for the JavaFX Scene Builder, which will first be made available to select partners, then expanded to a general beta, and then a full release. But for those at JavaOne, an early build of the tool will be running and available for demo at the DEMOgrounds.

A series of stunning demos -- several of them BSD licensed caused much enthusiasm -- then took JavaFX 2.0 out for a spin, and clearly showed the possibilities and potentials of the new release -- including animated 3D audio EQ mapping, and a navigable 3D virtual room that featured live video of Oracle colleague Jasper Potts displayed on a wall monitor, along with real-time mimicking of Potts’ movements by a virtual Java Duke figure.

Bair noted that there are over 50 JavaFX sessions at JavaOne, and said that for anyone who attended all of them -- “I’ll buy you dinner!”

Moving Java EE into the Cloud

From there, Linda DeMichiel, Java EE 7 Specification Lead, explored the upcoming Java EE 7 release. “What’s new with the Java EE platform?” asked DeMichiel. “We’re moving Java EE into the Cloud. Our focus on this release is providing support for Platform as a Service. We want to provide a way for customers and users of the platform to leverage public, private and hybrid clouds. With Java EE 7, our focus is on the platform itself as a service, which can be leveraged in cloud environments.”

DeMichiel’s colleague, Arun Gupta, then demonstrated deployment of a Java EE application as a PaaS, using Glassfish 4.0. Both the application and instructions on how to replicate the demo are available online.

More Java Cards than People?

Lastly, Hinkmond Wong, of Oracle’s Java Embedded group, covered the latest in mobile and embedded Java, noting the three billion Java enabled phones and five billion Java Cards in the world today. “There are about 6.5 billion people in the world,” noted Wong, “and five billion Java Cards.”

2011 saw the introduction of Near Field Communication (NFC) payment system, including e-Passport in Java ME, allowing for mobile-to-mobile and machine-to-machine transactions with embedded security. Wong detailed the many new Java ME releases for 2011, along with several mobile and embedded technology demos—from cell phones to Blu-ray players.

The overflow crowd left the opening technical keynote energized – a real good start to this JavaOne!

Learn More:

Java 7 Features

Java SE 7 Features and Enhancements

A Look at Java 7's New Features

Contribute to JDK 8

JavaFX Homepage

JavaFX Overview

Java EE at a Glance

Java for Mobile Devices

Oracle NoSQL Database

Oracle Technology Network for Java Developers

Monday Oct 03, 2011

Evolutionary Next-Steps - Technical Keynote JavaOne 2011

Monday morning's Technical Keynote began with Doug Fisher, Corporate Vice President and General Manager of the Software and Services Group’s System Software Division, Intel. Fisher and a number of Intel colleagues reviewed Intel’s long association with Java, and their collaborative work with Oracle to optimize the Java platform (for both the JVM and Fusion Middleware) on Intel hardware.

From there, Ashok Joshi, Senior Director of Development NoSQL Database, briefly discussed performance tuning with Intel of the newly announced Oracle NoSQL Database product.

From Evolution to Revolution: Java 7 to Java 8

Following Joshi, Mark Reinhold, Chief Architect of the Java Platform Group at Oracle, reviewed the history of Java 7, and its “Plan B” paradigm of including Project Coin (JSR 334), InvokeDynamic (JSR 292), and the Fork/Join Framework in the just-released Java 7, while incorporating Project Jigsaw and Project Lambda in the upcoming Java 8. Reinhold then explored the evolutionary benefits of these key new features of the Java 7 release -- offering both greater ease of development, and significant performance benefits. “Not only are these features available in Java 7 today,” noted Reinhold, “but as of last week, they are now supported in all three of the major Java IDEs.”

Reinhold next detailed plans for the upcoming Java 8 release, which promises more revolutionary features beyond the evolutionary offerings of Java 7. Project Lambda (JSR 335) will bring closures to the Java programming language. And Project Jigsaw (JSR TBD) aims to define a standard module system -- not just for application code, but for the platform itself.

JavaFX 2.0 is Here!

Richard Bair, Chief Architect, Client Java Platform, Oracle, then dove into the official debut of JavaFX 2.0, along with some stunning demos of the new facility, presented by several colleagues. Java FX 2.0 is Oracle’s premier development environment for rich client applications. Bair emphasized that JavaFX 2.0 was designed to offer:

Cross Platform
Leverage Java
Advanced Tooling
Developer Productivity
Amazing User Interfaces.

“We naturally want user interfaces that look good and work well,” said Bair. “It used to be just eye candy, but now it’s becoming a required feature for the things we write. We’re announcing today the general availability of JavaFX 2.0, at JavaFX.com. We think this is going to be a really big deal in the industry.”

An important aspect of any UI technology is a good visual development tool, and Bair next announced early access for the JavaFX Scene Builder, which will first be made available to select partners, then expanded to a general beta, and then a full release. But for those at JavaOne, an early build of the tool will be running and available for demo at the DEMOgrounds.

A series of stunning demos -- several of them BSD licensed caused much enthusiasm -- then took JavaFX 2.0 out for a spin, and clearly showed the possibilities and potentials of the new release -- including animated 3D audio EQ mapping, and a navigable 3D virtual room that featured live video of Oracle colleague Jasper Potts displayed on a wall monitor, along with real-time mimicking of Potts’ movements by a virtual Java Duke figure.

Bair noted that there are over 50 JavaFX sessions at JavaOne, and said that for anyone who attended all of them -- “I’ll buy you dinner!”

Moving Java EE into the Cloud

From there, Linda DeMichiel, Java EE 7 Specification Lead, explored the upcoming Java EE 7 release. “What’s new with the Java EE platform?” asked DeMichiel. “We’re moving Java EE into the Cloud. Our focus on this release is providing support for Platform as a Service. We want to provide a way for customers and users of the platform to leverage public, private and hybrid clouds. With Java EE 7, our focus is on the platform itself as a service, which can be leveraged in cloud environments.”

DeMichiel’s colleague, Arun Gupta, then demonstrated deployment of a Java EE application as a PaaS, using Glassfish 4.0. Both the application and instructions on how to replicate the demo are available online.

More Java Cards than People?

Lastly, Hinkmond Wong, of Oracle’s Java Embedded group, covered the latest in mobile and embedded Java, noting the three billion Java enabled phones and five billion Java Cards in the world today. “There are about 6.5 billion people in the world,” noted Wong, “and five billion Java Cards.”

2011 saw the introduction of Near Field Communication (NFC) payment system, including e-Passport in Java ME, allowing for mobile-to-mobile and machine-to-machine transactions with embedded security. Wong detailed the many new Java ME releases for 2011, along with several mobile and embedded technology demos—from cell phones to Blu-ray players.

The overflow crowd left the opening technical keynote energized – a real good start to this JavaOne!

Learn More:

Java 7 Features:
http://openjdk.java.net/projects/jdk7/features/

Java SE 7 Features and Enhancements:
http://www.oracle.com/technetwork/java/javase/jdk7-relnotes-418459.html

A Look at Java 7's New Features:
http://radar.oreilly.com/2011/09/java7-features.html

Contribute to JDK 8:
http://openjdk.java.net/projects/jdk8/
http://jdk8.java.net/

JavaFX:
http://javafx.com/
http://www.oracle.com/technetwork/java/javafx/overview/index.html

Java EE at a Glance:
http://www.oracle.com/technetwork/java/javaee/overview/index.html

Java for Mobile Devices:
http://www.oracle.com/technetwork/java/javame/javamobile/overview/getstarted/index.html

Oracle NoSQL Database:
http://www.oracle.com/technetwork/database/nosqldb/overview/index.html
About

Insider News from the Java Team at Oracle!

duke
javeone logo
Links


Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
2
5
6
7
12
13
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today