by Janice J. Heiss
Java Champion Johan Vos takes a look at what's happening in the world of Java technology and gets ready for JavaOne 2013.
Published September 2013
Johan Vos has a long and diverse history working with Java. He first did research in Java in 1995 while working on his PhD in applied physics and soon joined the Blackdown team and ported Java 1.2 to Linux/SPARC. He subsequently worked as a Java consultant and for a number of companies before co-founding LodgON in 2000, a company focused on enabling organizations to get the maximum out of their internet projects with special attention to high interactivity. LodgON provides hosted websites with community features based on the open source DaliCMS platform as well as highly interactive communities based on the DaliCommunity platform.
In addition, Vos was part of the Core Platform Expert Group of OSGi that created the OSGi platform specifications. His experience extends to a wide range of Java environments, from Java ME to Java EE.
Vos works primarily on Java-based solutions for social networking software because, as he says, he can't make a choice between embedded and enterprise development. His main focus is on end-to-end Java, combining the strengths of back-end systems and embedded devices. His favorite technologies are currently Java EE/GlassFish at the back end and JavaFX at the front end.
He also holds an MSc in civil engineering with a focus on mining.
Vos is a Java Champion and a member of the BeJUG steering group, the Devoxx steering group, and the JCP. He is a co-author of the Pro JavaFX 2 book, and has been a speaker at numerous conferences on Java (including JavaOne and Devoxx). You can read his blog at http://blogs.lodgon.com/johan and follow his tweets at http://twitter.com/johanvos.
He is giving two sessions at JavaOne 2013:
Oracle Technology Network: Tell us about your JavaOne sessions.
Vos: In "Building Social Software on Top of Java EE 7 with DaliCore," I'll show how you can integrate social software functionality into Java EE 7 applications. Many enterprise applications can benefit from some kinds of integration with, for example, Facebook, LinkedIn, Twitter, and so on, without jeopardizing the user's privacy and without giving up ownership of the data. The DaliCore framework adds the concept of User and OnlineAccount to the Java EE world, and it provides the coupling with existing social networks. This saves lots of project-specific boilerplate code. This approach works both in web applications as well as in desktop applications.
In "DataFX: The Best Way to Get Real-World Data into Your JavaFX Application," Hendrik Ebbers and I will present DataFX 2, a framework that helps JavaFX developers populate JavaFX controls with real-world data. Now that JavaFX is beyond the stage of demos and POCs [proof of concepts], it becomes important that the fake data used in demos be replaced with real data, often coming from back-end servers and databases. Apart from the regular cases where a JDBC source or a RESTful web service is queried, we will also show how changes in the local data can be propagated to the back end again, and we might show how real-time data can be retrieved and visualized via WebSockets.
Oracle Technology Network: Aside from your sessions, what do you have planned for JavaOne 2013?
Vos: It is going to be a packed week. There are many interesting sessions and many interesting networking opportunities. I am mainly looking for surprising things, both from a technical and a business perspective. From a technical perspective, I will be looking for deployments and stories about Java being used where you don't really expect it. I will most likely spend time in sessions on embedded Java and Java in science, hoping to find a use case where Java enables Mars robots, flying cars, or something similar.
Also, being a technical person, I think I know what can be done with Java, but I'm always looking for people with cool business concepts. Technology by itself is an enabler for world-changing things, but without great ideas and concepts, it is just technology. At JavaOne, developers and creative people have the opportunity to meet with each other, and I'm really looking forward to this.
|"Many companies and advertising media still don't manage to get the most out of the synergy between businesses and social networks. The question is often, 'Who owns the user data: the social network or the company?' In most cases, the best answer is 'both'." |
Oracle Technology Network: How do you view the future of social media?
Vos: Opinions on social media are constantly shifting. Years ago, many people and companies ignored Facebook, LinkedIn, and Twitter because social media was not considered to be serious. Today, we see that most companies are present on those social media and many use it to expand their business. However, many companies and advertising media still don't manage to get the most out of the synergy between businesses and social networks. The question is often, "Who owns the user data: the social network or the company?" In most cases, the best answer is "both." We see that most social networks provide great APIs that allow companies to build applications where they leverage the social network while they remain owner of the additional data. Yet, many companies still limit their use of social networks to a "like" button or "share this with friends."
Apart from an increasing use of social networking APIs, I think the role of mobile APIs and applications is going to be important. We see that the majority of the big social networks are spending lots of effort in mobile clients, and I expect that the applications will follow. For the back end, it doesn't really matter whether a user accesses functionality using a web browser, a desktop, or a mobile client. By providing business functionality on mobile clients, the potential value of the back end increases a lot.
Oracle Technology Network: Give us your perspective on the future of JavaFX.
Vos: While it has been proven that HTML5 can be used to create great and attractive websites, I don't believe in a world with only one front-end technology. For many developers, it is more intuitive to program a user interface rather than to write markup language for it. If the focus is not only on the visualization, but also on the business functionality and the communication with other (back-end) systems, a programming language (such as Java, with JavaFX being part of Java) makes more sense. Having said that, the great visualization capabilities of JavaFX are often a reason by itself to do something in JavaFX rather than in HTML5.
One of the main reasons why JavaFX can become a great front-end platform is the fact that it is pure Java. It is a huge cost saver and time saver if you write an application once and it runs everywhere—from desktops to tablets to smartphones. We're not there yet, but I hope to see more evidence at JavaOne that this is the direction JavaFX is heading.
|"The introduction of lambdas is a revolution for the Java platform." |
Oracle Technology Network: What have you been working on lately?
Vos: I often try to combine Java EE 7 and JavaFX. I am convinced that these two technologies are complimentary, and while they are completely decoupled, the combination can lead to great end-to-end projects.
As a POC, and in order to get more realistic use cases that could benefit both DaliCore and DataFX, I started to write a JavaFX application that offers community functionality. The front end of the application is written in JavaFX, and the back end uses DaliCore on top of Java EE 7. In this application, lots of data is sent from and to the back end. While working on this application, I think we really improved DataFX a lot.
The intention of this project is not to rewrite Facebook in JavaFX, but it shows how you can write JavaFX applications that leverage integration with social networks, combined with additional application-specific data.
Oracle Technology Network: What do you expect from Java EE 7 and Java SE 8?
Vos: Java EE 7 is a major step forward in the Java EE world. Java EE 7 makes the life of enterprise developers easier and more fun. In the past, writing enterprise applications was often boring since you had to write lots of boilerplate code and configuration. Now, with Java EE 7, you can really focus on your application-specific code.
I don't see many radical backward incompatible changes, so I think the adoption of Java EE 7 will be rather quick. Also, a number of books on Java EE 7 (for example, by Arun Gupta, Antonio Goncalves, and Josh Juneau) are already available, and the internet contains a number of online tutorials, so developers can get up to speed easily.
|"I am convinced that once the Java runtime and the JavaFX visualization libraries are available for the most common devices, tablets, and phones, developers will start writing the coolest applications for these emerging markets." |
While Java EE 7 is a normal and expected evolution in the Java EE world, the story about Java SE 8 is different. The introduction of lambdas is a revolution for the Java platform. I've read a number of discussions between specialists about how to use lambdas, and I think the patterns still have to become clear. Once Java SE 8 is adopted by the majority of Java users, we will see how lambdas are really used in practice.
I have been using Java SE 8 for some time now, both on servers (as the JVM behind GlassFish 4) as well as on embedded (using the early access preview of Java 8 on the Raspberry Pi, an ARM-based device), and I'm happy about its performance and stability. The number of bugs that are fixed between different builds is also impressive. (I upgraded today from b101 to b104, and a number of issues I used to have are now fixed.)
With JavaFX being part of Java 8, I see another opportunity as well. Over the past months, we have seen a number of reports on "Java vulnerabilities." Most of these security-related issues have to do with the sandbox model Java provides in a browser environment—I understand that it took lots of resources to fix these holes. Using JavaFX 8 and the Java(FX) packager tools, it is now much easier to create standalone Java applications that can be distributed via third-party application stores. I hope this will become the dominant means of distributing Java applications, rather than pushing Java applications in a sandbox.
Oracle Technology Network: Give us your general take on the state of Java.
Vos: The Java platform is big, and it is hard to talk about the state of Java in general. The enterprise part is pretty stable; the Java EE 7 spec matches the needs of the industry and developers, and the Expert Group working on the Java EE specs has a clear view of how the industry is moving. One proof of this is that I understand people are now looking into cloud, PaaS [platform as a service], NoSQL, and other technologies that are becoming more relevant in the industry. As long as the Expert Group keeps an eye on these evolutions and tries to provide a way to leverage them from within Java EE applications, I am very confident about the future.
The client part of Java is completely different. The timeline containing MIDP, KVM, CVM, Swing, JavaFX Script, JavaFX, Java ME, and so on is a bit of a roller coaster. This is perfectly normal, since the client industry (including mobile and embedded) is pretty shaky as well. It is not easy to come up with a long-term roadmap for Java in this segment, since there are many external factors that contribute to the success or failure of technologies in this area. Yet, I think it is an extremely important and growing segment. All reports show that mobile and embedded is growing, and I would like to see the Java platform supported on the majority of the devices out there. This is not easy to achieve, partly due to the wide variety of mobile and embedded devices. But I am convinced that once the Java runtime and the JavaFX visualization libraries are available for the most common devices, tablets, and phones, developers will start writing the coolest applications for these emerging markets.
Janice J. Heiss is the Java acquisitions editor at Oracle and a technology editor at Java Magazine.