Thursday Sep 26, 2013

Session Report: DataFX: The Best Way to Get Real-World Data into Your JavaFX Application

Java Champion Johan Vos of Lodgon and GUI expert Hendrik Ebbers of Materna GmbH gave a session on Vos’ labor of love, Project DataFX, a 2-year-old free and open source project intended to make retrieving, massaging, populating, viewing, and editing data in JavaFX UI controls easier. In so doing, they extend the functionality of JavaFX.

The goal of the session was to teach attendees how to develop enterprise applications in JavaFX with real-world services and data. They were focused on showing how the DataFX framework facilitates the process of data retrieval and rendering, and how it allows developers to focus on their application-specific logic.

According to Vos and Ebbers, the real value in most client-oriented business applications is the data sitting on remote servers and cloud systems. Retrieving and displaying this data must be done correctly before end users can interact with it. The open source DataFX framework aims to simplify this by enabling JavaFX developers to easily retrieve data from a variety of sources in several formats and rapidly integrate it with JavaFX components (such as TableView), using typical JavaFX patterns. The session introduced the DataFX project, gave practical advice for using it, and provided insight into future applications.

The session explored a variety of tools used in DataFX: the Concurrency API, DataFX Executor, lambda expressions, DataReader, RestReader, DataProvider, Controller API, Flow API, and many more.

The DataFX Project
Java Champion Johan Vos
Hendrik Ebbers
Be sure and go to Parleys.com to view the session in early October.

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

Sunday Sep 22, 2013

At the JavaOne 2013 Strategy Keynote

by Janice J. Heiss and Timothy Beneke

JavaOne 2013 – the 18th JavaOne Conference -- kicked off at San Francisco’s Moscone Center with two very thoughtful and illuminating presentations by Peter Utzschneider, Vice President, Java Product Management, and Nandini Ramani, Vice President of Engineering, Java Client and Embedded Platforms, both of Oracle. Together, they presented a vision of Java adroitly adjusting to an industry, and even a world, that is undergoing rapid change as we enter the Internet of Things. 

Utzschneider began by celebrating the very fact of JavaOne 2013, which offers more than 400 sessions, with attendees from no fewer than 92 countries and a wealth of educational and other festivities, including a “Codegarten” where developers can improve their coding skills, plus a code challenge using the Raspberry Pi. He gave a brief update on the thriving state of Java, which is showing a 10% increase in Java User Groups, a major new release of Java EE 7, increasing readership of Java Magazine, along with a strong and growing Java community.

He suggested that it is important for developers to remember that Java remains the number one development platform in the world with most of the infrastructure that powers the web running on Java.

As he spoke, an accompanying slide displayed Java’s success:

*    9 Million Java Developers Worldwide
*    #1 Choice for Developers
*    #1 Development Platform
*    3 Billion Mobile Phones Run Java
*    100 Percent of Blu-ray Disc Players Ship with Java
*    97 Percent of Enterprise Desktops Run Java
*    5 Billion Java Cards in Use
*    7 Billion Java Cards Sold
*    89% of desktops run java
*    125 million TV devices run java
*    5 of top 5 OEMs ship java

The theme of JavaOne 2013, “Make the Future Java” is unchanged from last year’s, for a very good reason, according to Utzschneider. “There is a lot going on in the industry,” he said, “with massive shifts and innovation happening which pose huge challenges and opportunities for Java.” The goal is to make Java better, stronger, more robust and relevant for decades to come.

He presented a slide that illustrated another key point. “The combination of mobility and social have created an incredible amount of new data, of people interacting, sharing and producing things with new services and new applications, all being driven by massive infrastructure, mostly running on Java,” he noted. Some 204 million messages are sent every minute, with 278,000 tweets, 20 million photos viewed and 11,000 professional searches via the Internet.

All of this activity is creating an enormous amount of data in many forms with growing volume and velocity. He noted: “Dealing with data – historical, real-time, future, large, small – is creating a whole new paradigm. We now have Big Data, fast data, all backed up through BI (Business Intelligence) and analytics. The data itself has become the life blood that allows developers to harness and innovate and build new applications.”

Utzschneider referred to the many non-human driven devices that will be coming on the Internet in the next two years – estimates vary between 10 and 50 billion. “When I looked at these numbers,” he observed, “I realized that once you get up into the billions, it doesn’t matter. It’s huge, real, and happening.”

He said that the devices are driven by Moore’s Law hitting the embedded space very hard, as devices become cheaper, more powerful and most important – connected. “This is the about the Internet of Things,” he said. “It will be a major game changer for Java developers and the larger community.”

He pointed out that the mobile devices we use today for applications and to connect with each other will become the ultimate remote controls of the future, which will help us interact with and control the physical world around us. Simultaneously, the shift to cloud-based development is now in full swing.

With this change, he noted, “We will have to rethink security and rethink how services can move from a container-based to a more service-based model. And we want to be able to move our applications from physical infrastructure to the cloud, but also be able to port it to a different cloud if we wish.”

He emphasized that in stewarding the Java platform, Oracle is committed to making the skills of Java developers applicable to the future.

JavaOne 2013’s First Demo
Utzschneider explained that, without knowing it, attendees had been participating in the first demo at this year’s JavaOne. “With partners, Hitachi Consulting and Eurotech, we have built an end-to-end demo with sensors above all the doorway portals which differentiate whether you are a dog or a human, whether you are coming or going, and feeding this data to a Java SE based application running on a gateway. After the computation is complete, it goes to the cloud, which has analytics and BI (Business Intelligence) applications, plus a Java-based application for visualization.”

The point of the demo is to demonstrate how, in a couple of weeks, using off-the-shelf Java componentry, a sophisticated demo could be built, and strung together, to prove the value of Java as an open standard applicable from the smallest devices all the way up to cloud-based development.

Nandini Ramani: Unifying the Java Platform
Nandini Ramani next shared the stage with Utzschneider, and began with an analysis of how Java has thrived on a diverse spectrum of devices and markets, resulting in implementations that have also become more siloed over the years. “Moving forward,” she remarked, “we believe it’s important to unify the platform, not just from an API perspective, but from a language perspective.”

She observed that Java SE 7, CDC, and CLDC, differ more than they share commonalities. From a language perspective, CLDC is still at the Java 1.3 phase, while Java SE is heading towards Java 8 early in 2014. The pace of Java ME has not kept up with Java SE.

“Java SE 8 is a huge step towards platform unification,” Ramani said. “With SE 8, we will release the Compact Profile and will replace CDC, so we will have one less implementation. We are also increasing commonality both from an API and a language perspective. This means that on the API front in ME 8 you will see familiar libraries like NIO, New Collections, and so on. With the language we will have annotations, generics, and even strings in switch.”

Developers will thus be able to use their skill sets across the entire Java spectrum instead of being restricted to being a Java ME or Java SE developer. With Java 8, developers will get code portability, commonality of APIs and common tooling from the smallest device all the way up to Java SE embedded to serverside Java SE.

She pointed to three things that are happening driving this unification. First, Moore’s Law is making devices more capable. Second, Java SE is being shrunk to fit into the embedded space and smaller devices; and third, Java ME is being brought up to be in parity with Java SE.

Java – The Logical Choice for the Internet of Things
Ramani remarked that Oracle is working with embedded partners to make Java a first-class citizen with their chip sets. Because there are so many vendors with different operating systems and device drivers, embedded development can be fragmented and challenging. “Everyone believes that there is a need for an open standard platform for the Internet of Things space that is coming – Java is the logical choice to address this market,” explained Ramani.

Utzschneider noted that some of JavaOne 2013’s partners like Freescale and Qualcomm come from the device side and are eager to make this happen. Freescale will be giving a talk prior to Thursday’s Community Keynote about why Java makes sense for the Internet of Things.

Ramani stated that in August of 2013, Oracle launched the Oracle Java Platform Integrative Program that first gives partners the ability to easily port Java Embedded to platforms that Oracle does not yet support; and second, it gives them the ability to extend the platform with their own libraries based on market verticals and segments, or health care, manufacturing, smart home, or industrial automation. This is part of a larger attempt to embrace and extend the Java ecosystem.

Qualcomm Conference Uplinq Hackathon Winner Andrew Sugaya
Next, a surprise. Someone was invited onstage who, a mere 12 days before, was unknown to Oracle. This was Andrew Sugaya, winner of the Grand Prize at the 2013 Qualcomm Conference Uplinq Hackathon. Sugaya works for APX Labs in the rapid development of augmented reality solutions for various applications. He explained how, at the Hackathon, he was given breakfast and a black box that he did not know how to use. Though he had coded in Java, he had never used Java ME before. He found it very easy to pick up and, using ME, he took the platform and took temperature and brightness data from it, pushed the data out to the network cloud, and into a server which processed the data and was able to change the color and brightness of different light bulbs.

“Now the craziest thing,” said Sugaya, “is that it’s not just the light bulbs – it could be anything. It could be a toaster, a beer mug, even the chairs you are sitting in now. Everything in the future is going to be connected. Some of the work I do at Apex labs is trying to interface with these devices that in the future will be everywhere. We do that through wearable devices.”

That he was able to accomplish this without ever having used Java ME before attests to its appropriateness for embedded devices. Utzschneider commented: “This is a good example of what should happen in the next couple of years. People should be able to deploy their Java skills, pick up a device and write code, and not have to worry about the things that have been problematic in the embedded space. You won’t have to write memory management from scratch before you can even get started. We are trying to put simplicity into the platform.”

Ramani pointed to features coming in Java SE 8 next year, including lambdas, Javascript engine Nashorn, and PermGen removal. Beyond Java 8, the modular Java is coming by way of Project Jigsaw. Oracle is considering a wish list of ideas from the Java community, some of which are in progress, such as Project Sumatra.

Developers were encouraged to check out early access of Java SE 8 and provide feedback. “Tell us what doesn’t work,” said Ramani. Oracle is also seeking feedback on Java ME 8 and the Raspberry Pi.

Java EE 7: Making it Easy to Develop Leading-Edge Enterprise and Web Applications
Sunday’s strategy keynote continued as Cameron Purdy, Vice President, Cloud Application Foundation, at Oracle, joined Peter Utzschneider onstage and talked about the release of Java EE 7 in the summer of 2013. Purdy explained that Java EE 7 had three primary areas of focus. First, it offered HTML5 support with such things as WebsSockets, Server-Sent events, JSON and RESTful support, all of which help developers build modern web-based application. Second, the enterprise aspect of Java EE always gets strong attention, so the adding of batch capabilities was important. Third, developer productivity was a key so Java EE 7 requires less boilerplate code through features like CDI (Context and Dependency Injection) and more annotated POJOs. 

Purdy pointed out that when Java EE 7 was announced in 2011, the major theme was cloud development. When it was released, the greatest focus was on support for HTML5. “There is a ton of work related to the cloud in Java EE 7,” he explained. “There is support for things like new security roles in the cloud and being able to automatically wire up a database and default resources, kind of like CDI at the application level, being able to pump a schema into that database or being able to easily consume RESTful services from one application to another. And lastly, with JavaServer Faces we can actually skin applications. If we have a multi-tenanted application we can skin it for each tenant.”

Looking ahead, Purdy said that the continual focus is on making it easy for developers to develop leading-edge enterprise and web applications. “We want to support the latest standards and keep these technologies relevant. We are working on JCache, an application that is coming to fruition. We are improving JSON binding and other technologies. The major focus is making it a vibrant technology that is relevant to what the industry is doing.”

Purdy remarked that EE 7 has gotten major support from the community and partners. “When EE 7 was launched the number of downloads and dial-ins and people watching web casts exceeded all of our expectations,” said Purdy. “It’s had a great reception.”

Open Sourcing Project Avatar
Peter Utzschneider reminded Purdy of Project Avatar, which Purdy announced in 2011. Purdy described its focus: “You take a simple Java EE application and then you start to build on the HTML5 capabilities that we introduced in EE 7. So, for example, we’re using WebSocket and Server-Sent events to provide programming models in addition to the typical request response. And adding support for NoSQL databases. And we’re leveraging Project Nashorn in Java SE to make the Java EE container polyglot. We’re extending EE to support Javascript and have node services running in a Java application server. We are also announcing today that we are open sourcing Project Avatar at avatar.java.net. It’s a brand new open source project with some pretty exciting stuff in there.”

Project Avatar

Watch Keynote and Session Highlights on Demand

Stay tuned for more on this 3-hour Sunday keynote, an information-packed combined strategy and technical keynote.



Monday Apr 15, 2013

Kotlin: A Conversation with JetBrains' Andrey Breslav

A new article, up on otn/java, by yours truly, titled “The Advent of Kotlin: A Conversation with JetBrains' Andrey Breslav,” explores the new statically typed language, Kotlin, which was named  Language of the Month in the January 2012 issue of Dr. Dobb's Journal. Kotlin is a product of the highly lauded Czech software development company, JetBrains, maker of the Java IDE IntelliJ IDEA. Project Kotlin aspires to create for developers a general-purpose language that can serve as a useful tool that is safe, concise, flexible, and 100 percent Java-compatible. Both the compiler and the IntelliJ IDEA plug-in are open source under the Apache 2 license, with source code available through GitHub.

Breslav, the lead language designer for Kotlin, discusses Kotlin's features in the interview.  Here are some things he points out:

* “Extension functions and properties in Kotlin can be added to any class/type without altering the definition of the class. This enables us to beautify even existing Java libraries so that the good old JDK looks nice and shiny.
* Higher-order functions (passing code around as values) are a lot more convenient, because Kotlin supports proper function types (as opposed to Java 8's SAM conversions that make you create a new interface every time you need a new function signature to be passed around).
* Declaration-site variance, and variant collections in particular, make common data processing much more natural by eliminating the need for ubiquitous wildcards in generic types.”

Breslav says that Kotlin promotes null safety, through nullable types and “offers control over data modification through read-only collections and data classes and enables safer runtime checks through smart casts.”

He states that Java developers who are in search of a new language will enjoy Kotlin’s clean abstractions, concise syntax, and type safety. Breslav encourages developers to download the compiler and/or a plug-in for IntelliJ IDEA, and start writing their own applications. Any feedback about what developers like and dislike, what they find difficult to understand, and how they are making use of Kotlin will be much appreciated.

Check out the article here.

Tuesday Jan 08, 2013

Java Experts on the State of Java

In a new article by yours truly, now up on otn/java, titled “Java Experts on the State of Java,” four Java experts, Adam Bien, Charles Nutter, Kirk Pepperdine and Simon Ritter, share their unique perspectives on what’s happening in the world of Java.

Consultant Adam Bien, winner of many awards and an expert in Java EE, remarks that, “Only a few years ago, Java EE was used mostly by larger companies—now it becomes interesting even for one-person shows.” He is also excited about Project Nashorn, which is coming in Java SE 8.

Charles Nutter, co-creator of JRuby and a Java Champion, observes that “JRuby seems to have hit a tipping point this past year, moving from ‘just another Ruby implementation’ to ‘the best Ruby implementation for X,’ where X may be performance, scaling, big data, stability, reliability, security, or one of several other features important for today’s applications.”

Java Champion Kirk Pepperdine, an expert in Java performance tuning, comments that, “The volume of data we’re dealing with just seems to be getting bigger and bigger all the time. A couple of years ago, you’d never think of needing a heap that was 64 GB, but today there are deployments in which the heap has grown to 256 GB, and there are plans for heaps that are even larger. Dealing with all that data simply requires more horsepower and some very specialized techniques. In some cases, teams are simply trying to push hardware to the breaking point. Under those conditions, you need to be very clever just to get things to work—let alone to get them to be fast. We are very quickly moving from a world where everything happens in a transaction to one in which you’ve lost if you even consider using a transaction.”

Finally, Oracle’s Java Rock Star Simon Ritter celebrates the Raspberry Pi: “I don’t think there is one definitive thing that makes the Raspberry Pi significant, but a combination of things really makes it stand out. First, it’s the cost: $35 for what is effectively a completely usable computer. OK, so you have to add a power supply; an SD card for storage; and maybe a screen, keyboard, and mouse, but this is still way cheaper than a typical PC. The choice of an ARM processor is also significant, because it avoids problems such as cooling (no heat sink or fan) and can use a USB power brick.”

Check out the article here.

Wednesday Sep 26, 2012

Talking JavaOne with Rock Star Adam Bien

Among the most celebrated developers in recent years, especially in the domain of Java EE and JavaFX, is consultant Adam Bien, who, in addition to being a JavaOne Rock Star for Java EE sessions given in 2009 and 2011, is a Java Champion, the winner of Oracle Magazine’s 2011 Top Java Developer of the Year Award, and recently won a 2012 JAX Innovation Award as a top Java Ambassador.

Bien will be presenting the following sessions:

  • TUT3907 - Java EE 6/7: The Lean Parts
  • CON3906 - Stress-Testing Java EE 6 Applications Without Stress
  • CON3908 - Building Serious JavaFX 2 Applications
  • CON3896 - Interactive Onstage Java EE Overengineering

I spoke with Bien to get his take on Java today. He expressed excitement that the smallest companies and startups are showing increasing interest in Java EE. “This is a very good sign,” said Bien. “Only a few years ago J2EE was mostly used by larger companies -- now it becomes interesting even for one-person shows. Enterprise Java events are also extremely popular. On the Java SE side, I'm really excited about Project Nashorn.”

Nashorn is an upcoming JavaScript engine, developed fully in Java by Oracle, and based on the Da Vinci Machine (JSR 292) which is expected to be available for Java 8.  

Bien expressed concern about a common misconception regarding Java's mediocre productivity. “The problem is not Java,” explained Bien, “but rather systems built with ancient patterns and approaches. Sometimes it really is ‘Cargo Cult Programming.’ Java SE/EE can be incredibly productive and lean without the unnecessary and hard-to-maintain bloat. The real problems are ‘Ivory Towers’ and not Java’s lack of productivity.”

Bien remarked that if there is one thing he wanted Java developers to understand it is that, "Premature optimization is the root of all evil. Or at least of some evil. Modern JVMs and application servers are hard to optimize upfront. It is far easier to write simple code and measure the results continuously. Identify the hotspots first, then optimize.”

He advised Java EE developers to, “Rethink everything you know about Enterprise Java. Before you implement anything, ask the question: ‘Why?’ If there is no clear answer -- just don't do it. Most well known best practices are outdated. Focus your efforts on the domain problem and not the technology.”

Looking ahead, Bien said, “I would like to see open source application servers running directly on a hypervisor. Packaging the whole runtime in a single file would significantly simplify the deployment and operations.”

Check out a recent Java Magazine interview with Bien about his Java EE 6 stress monitoring tool here.

Originally published on blogs.oracle.com/javaone.



Tuesday Sep 18, 2012

The 2012 JAX Innovation Awards

A new article, now up on otn/java, titled “The 2012 JAX Innovation Awards” reports on  important Java developments celebrated by the Awards, which were announced in July of 2012. The Awards, given by S&S Media Group, aim to, "Reward those technologies, companies, organizations and individuals that make outstanding contributions to Java." The Awards fall into three categories: Most Innovative Java Technology, Most Innovative Java Company, and Top Java Ambassador. In addition, a finalist who did not win an award receives a Special Jury prize, "in acknowledgement of their unique contribution and positive impact on the Java ecosystem."

The winners were: JetBrains for Most Innovative Java Company; Adam Bien as Top Java Ambassador; Restructure 101, created by Headway Software, as Most Innovative Technology; and Charles Nutter, Special Jury award. Each winner received a $2,500 prize. The five finalists in each category were invited to attend the JAX Conference in San Francisco, California. This year's winners each received a $2,500 prize.

JetBrains Fellow, Ann Oreshnikova, listed her favorite JetBrains innovations:

* Nullability annotations and nullability checker
* CamelCase navigation and completion
* Continuous Integration in grid (on multiple agents), in TeamCity
* IntelliJ Platform and its language support framework
* MPS language workbench
* Kotlin programming language

When asked what currently excites him about Java, Adam Bien, winner of the Java Ambassador Award, expressed enthusiasm over the increasing interest of smaller companies and startups for Java EE. “This is a very good sign,” he said. “Only a few years ago J2EE was mostly used by larger companies -- now it becomes interesting even for one-person shows. Enterprise Java events are also extremely popular. On the Java SE side, I'm really excited about Project Nashorn.”

Special Jury Prize Winner, Charles Nutter of Red Hat, remarked that, “JRuby seems to have hit a tipping point this past year, moving from ‘just another Ruby implementation’ to ‘the best Ruby implementation for X,’ where X may be performance, scaling, big data, stability, reliability, security, and a number of other features important for today's applications.

Check out the complete article here.

Tuesday Oct 18, 2011

The Heads and Tails of Project Coin

JavaOne 2011 - Joseph Darcy, Member of the Oracle Technical Staff, spoke to a very large,
packed conference room in his “The Heads and Tails of Project Coin” (22641) session Tuesday.
Project Coin, a central part of Java 7, was described by Darcy as “a suite of language and
library changes to make things programmers do everyday easier.”

Project Coin makes life easier by removing extra text to make programs more readable;  
encouraging the writing of programs that are more reliable; and by integrating well with past and future changes.
Darcy emphasized that these are small language changes related to specification, implementation and testing;
there are no JVM changes. Project Coin was written to coordinate with forthcoming larger language changes.

Project Coin has strong IDE support:
• IntelliJ IDEA 10.5 and later                                                                                                
• Eclipse 3.7.1 and later                                                                                                                  
• NetBeans 7.0 and later

The six Project Coin features are:  
• Binary literals and underscores in literals                                                                                
• Strings in switch                                                                                                                          
• Diamond                                                                                                                                     
• Multi-catch and more precise rethrow                                                                                
• try-with-resources                                                                                                               
• Varargs warnings

Diamond and varargs warnings enable easier-to-use generics. Multi-catch and try-with-resources allow for more concise error handling. Strings-in-switch and literal improvements result in greater consistency and clarity.

Darcy proceeded to demonstrate five of the six Project Coin features to a highly engaged audience.
Check out his session slides and you can also view this talk @ http://parleys.com/d/2663.

What’s ahead for Project Coin in Java 8? Look for very small language changes on the horizon.

Monday Oct 17, 2011

And The Winners Are.......The Duke's Choice Award

On Sunday evening, Oct. 2, at the JavaOne Open House, Oracle welcomed and celebrated the 2011 Duke's Choice Award winners, all talented developers who have demonstrated extreme innovation in the creation of Java-powered applications.

Drum roll: And the winners are...

Arquillian Project - Arquillian is a platform for simplifying Java integration testing.  We transparently handle the pesky scaffolding like server startup, framework initialization and deployment - leaving you to focus on the task at hand: writing your test logic.

• dooApp - Infiltrea is an end-to-end solution, built with JavaFX and Java Platform, Standard Edition (Java SE), designed for green building professionals whose job is to measure the air tightness of buildings.

Inductive Automation - Ignition is a Java-based web application that includes a business scorecard to integrate different manufacturing machines using a central web-server. It creates systems that cover the full spectrum between Human Machine Interface (HMI), Supervisory Control and Data Acquisition (SCADA) and Manufacturing Execution System (MES), enabling rapid project development and deployment.

• Java Platform, Enterprise Edition (Java EE) jHome - A complete home automation API open-source for Glassfish/Java EE, enabling developers to control anything in their homes such as lamps, LED lights, and coffee machines.

• JFrog - JFrog's Artifactory is the world's first binary repository manager. Built with the Content Repository API for Java (JCR) specification, it is helping to change the way developers build and manage software modules by delivering high concurrency and unmatched data integrity.

JRebel - JRebel is a Java Virtual Machine (JVM) plug-in that enables Java developers to instantly see any code change made to an application. It allows developers to skip the build and redeploy phases and has prevented 39 million redeploys.

• LMAX - The LMAX Disruptor is a multi-threaded, open-source concurrent programming framework designed for high-performance and low-latency transaction processing. Part of LMAX's Java-based trading platform, the LMAX Disruptor replaces and outperforms java.util.concurrent.ArrayBlockingQueue by up to 80 times.

Rockwell Automation - Rockwell Automation is creating its next generation, Java-enabled HMI device line of products that will allow for the automated communication and exchange of data to factory floor lines.

Sodbeans Project - The Sodbeans Project is an open-source, NetBeans-based module suite designed to enhance accessibility for the blind in modern programming environments. The NetBeans module suite includes a new programming language designed for ease-of-use, a text-to-speech engine designed to make NetBeans compatible with screen readers on multiple platforms and a number of features designed to make programming easier for the blind.

The Netty Project - The Netty Project is a Java-based new I/O (NIO) client server framework that enables quick and easy development of network applications. It greatly simplifies and streamlines network programming such as TCP and UDP socket server.

Congratulations to all!

OpenJDK Development Best Practices

At JavaOne 2011, Oracle Principal Member of Technical Staff, Kelly O’Hair, had a session on “OpenJDK Development Best Practices” that offered a lot of useful practical advice. He discussed current OpenJDK development procedures such as building, testing, code review, and creating a changeset, and integrating that changeset into a team repository.  In addition he covered "OpenJDK Developers' Guide" topics and looked at the challenges of integrating a change.

So what are the best practices when working on the JDK?
● When in doubt, ask
● When something does not work, report it
● Always be careful, rushing in changes is dangerous
● Do no harm, have a backup or backout plan
● Stay calm, nervous people make mistakes
● Be prepared for anything, because it will happen

When editing sources:
● No TABS
● Never edit the legal notices
● Respect the existing formatting
● Small surgical changes are best, easiest to review
● Well written comments are critical
● Do not assume anything about the compilers

Testcases are critical and not optional:
● Create a new one or modify an existing testcase
● Must be solid and work on all supported systems
● Must not be a resource hog (open 20,000 files)
● Must work in a shared VM mode (like a JUnit test)
● Assume someone else might be running the same test at the same time, and that someone might be you
● Continuous Build & Test
● Test gates or baseline testing
● But before you even get started making changes you must be able to completely build it and test it on your own system, this is a fundamental
● Linux builds are the easiest, so let's see what needs to happen

He suggested best practices short cuts for building:
● Always use local disk space
● Use /tmp if it has the space
● Try export HOTSPOT_BUILD_JOBS=4
● Try export ALT_PARALLEL_COMPILE_JOBS=4
● Use export NO_DOCS=true to avoid running javadoc
● Use ALT_JDK_IMPORT_PATH=${HOME}/jdk1.8.0

Kelly offered detailed principles related to testing, testing prep, editing, code review, changeset creation, why a push fails, and the team repository model.

His core ideas:
● Pick your environment, Linux is easiest
● Pick a stable state of repos, promoted build, oldest best
● Learn to build and test it, over and over, know what to expect, create a jdk to use as your import
● Editing working set files, read the Mercurial book
● Problemlist, changeset creation

About

Insider News from the Java Team at Oracle!

duke
javeone logo
Links


Search

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