JavaOne wrap-up
(I had intended to release this earlier, but after 4 full days of conferencing and partying, I just didn't have the energy and the concentration to finish it. But here it goes.)
JavaOne is over. Five days of keynotes, sessions, exhibitions and thousands of people moving between them. This was my first official JavaOne, although I had a discover pass two years ago when I just happened to be in San Francisco when the conference happened, but I only saw the general keynotes that time. Now, thanks to the blogger pass I got from Oracle, I had full-access to all the sessions and keynotes from Oracle OpenWorld, Oracle Develop and JavaOne. Which means that it was just too much for me or anyone to attend everything. I tried to attend the main keynotes and a couple of sessions that interested me. In the end, I got back what I expected, which was to find new things, meet new people and have fun.
So, what was the main theme for JavaOne this year? There was concern from some of the people I talked to regarding whether Oracle will continue its support for Java, and most important, for the Java community, which I think is what has made Java so popular. It seems that Oracle at least is taking Java to its next versions, 7 and 8, with a somewhat clear path. It also seems that they're starting to listen to some feedback from the community, but on the other hand they were very ambiguous on the whole "making Java free" issue. In fact, some sessions that were given by Oracle employees had PR people there just to make sure nothing was said about the matter. So much for improving the confidence of attendees regarding Java. It also seems that they will keep trying to push JavaFX (sans the scripting language) to people, and although the demos were cool, didn't we see the same years ago? Lots of mixed feelings about this. There also seems to be some push back into the mobile arena, in which they were very careful not to mention Android, by the way. But in all, it seems that Oracle will continue to support and promote Java in the foreseeable future.
As a closing note, I really think that Oracle really needs to separate JavaOne into its own conference, and put it back where it belongs, at the Moscone. A big part of these conferences is the ability to network with your peers, but here it was close to impossible since you had to basically run from one building to another for the sessions, and then run or take a bus if you wanted to see Oracle's keynotes at the Moscone (I never made it on time to the keynotes). Oracle tried to give the message that they're committed to Java, but by joining the conference to their main event it almost makes it seem like JavaOne has become an afterthought to them, a second-class citizen from their big corporate event. Sure, you get to give bigger events like the Appreciation Party, but I'd gladly trade that for having Java stand on its own. If they are really committed, they should "put their money where their mouth is" and make sure JavaOne is a standalone event.
JavaOne is over. Five days of keynotes, sessions, exhibitions and thousands of people moving between them. This was my first official JavaOne, although I had a discover pass two years ago when I just happened to be in San Francisco when the conference happened, but I only saw the general keynotes that time. Now, thanks to the blogger pass I got from Oracle, I had full-access to all the sessions and keynotes from Oracle OpenWorld, Oracle Develop and JavaOne. Which means that it was just too much for me or anyone to attend everything. I tried to attend the main keynotes and a couple of sessions that interested me. In the end, I got back what I expected, which was to find new things, meet new people and have fun.
So, what was the main theme for JavaOne this year? There was concern from some of the people I talked to regarding whether Oracle will continue its support for Java, and most important, for the Java community, which I think is what has made Java so popular. It seems that Oracle at least is taking Java to its next versions, 7 and 8, with a somewhat clear path. It also seems that they're starting to listen to some feedback from the community, but on the other hand they were very ambiguous on the whole "making Java free" issue. In fact, some sessions that were given by Oracle employees had PR people there just to make sure nothing was said about the matter. So much for improving the confidence of attendees regarding Java. It also seems that they will keep trying to push JavaFX (sans the scripting language) to people, and although the demos were cool, didn't we see the same years ago? Lots of mixed feelings about this. There also seems to be some push back into the mobile arena, in which they were very careful not to mention Android, by the way. But in all, it seems that Oracle will continue to support and promote Java in the foreseeable future.
As a closing note, I really think that Oracle really needs to separate JavaOne into its own conference, and put it back where it belongs, at the Moscone. A big part of these conferences is the ability to network with your peers, but here it was close to impossible since you had to basically run from one building to another for the sessions, and then run or take a bus if you wanted to see Oracle's keynotes at the Moscone (I never made it on time to the keynotes). Oracle tried to give the message that they're committed to Java, but by joining the conference to their main event it almost makes it seem like JavaOne has become an afterthought to them, a second-class citizen from their big corporate event. Sure, you get to give bigger events like the Appreciation Party, but I'd gladly trade that for having Java stand on its own. If they are really committed, they should "put their money where their mouth is" and make sure JavaOne is a standalone event.
Categories : JavaOne
Oracle Appreciation Event with The Black Eyed Peas
Not everything in JavaOne is about Java. Since Oracle decided to combine all of its conferences (OpenWorld, Oracle Develop and now that they own Sun, JavaOne), they did a massive party at Treasure Island in San Francisco. Around 50,000 people went there to enjoy different bands and artists, like the Steve Miller Band, Don Henley, Berlin, Montgomery Gentry, The English Beat. But the main event to me was none other than The Black Eyed Peas. They did a wonderful job in getting the audience excited, and they played many of their hit songs from several of their albums.
That concert totally made my day. I leave you here with a sample.
That concert totally made my day. I leave you here with a sample.
Categories : JavaOne
Comments about JavaOne
Well, I was going to try and talk about every session that I've been to, and about many of the new and old frameworks that I've seen, but one of the downsides of having the sessions in multiple hotels is that you're basically running from one place to another in between session. But I will eventually try to talk about all the things I've seen at JavaOne. At least it gives me material to keep posting stuff for a while.
I'm also very excited because as part of the Basement Coders podcast, we were able to interview many people. And we have a very special podcast coming out pretty soon in which we interview the Father of Java, James Gosling. Yes, that's right, we talked to him for a full hour and we discussed many things, including Oracle's ongoing lawsuit against Google and the controversy regarding his position for making Java free. I think it is a very interesting talk and you should definitely listen to it.
In general, I've enjoyed the conference so far, and I'll keep discussing the different aspects of it. I've actually felt good that I've talked to some people who've I've never met, and they tell me they've actually read my blog before. I think that is the best incentive for me to keep doing this for a long time. Thank you all for your comments.
I'm also very excited because as part of the Basement Coders podcast, we were able to interview many people. And we have a very special podcast coming out pretty soon in which we interview the Father of Java, James Gosling. Yes, that's right, we talked to him for a full hour and we discussed many things, including Oracle's ongoing lawsuit against Google and the controversy regarding his position for making Java free. I think it is a very interesting talk and you should definitely listen to it.
In general, I've enjoyed the conference so far, and I'll keep discussing the different aspects of it. I've actually felt good that I've talked to some people who've I've never met, and they tell me they've actually read my blog before. I think that is the best incentive for me to keep doing this for a long time. Thank you all for your comments.
JavaOne Keynote
Yesterday I attended Oracle's JavaOne keynote, presented by Thomas Kurian. The keynote focused on how has Java evolved and where it is right now. Millions of users use Java every day and the JVM is everywhere, form desktop computers to embedded devices. But we all knew that.
As for the future of Java, Thomas mentioned the new features that will be released in Java 7 and Java 8, scheduled for release mid 2011 and late 2012, respectively. I've already covered those, so I won't go into detail. They are also trying to promote Netbeans as the standard IDE for Java developers.
Then the presentation turned to JavaFX. It seems that JavaFX the scripting language is going away, but the technology is staying. JavaFX 2.0 plans are to move the script APIs to Java, so that developers won't have to learn a new language. They also plan several enhancements like binding APIs, Hardware Accelerated Graphics, HD Media support, etc. They showcased a demo where several video sources were being displayed simultaneously, with 3D effects like breaking a single video into hundreds of simulated cubes that would still play parts of the video. The plans are to release this sometime next year.
Overall, I don't think the presentation had much impact. It seems to me that, intentionally or not, the keynote was just a message from Oracle that is business as usual, and that they plan on keeping Java around for a while.
As for the future of Java, Thomas mentioned the new features that will be released in Java 7 and Java 8, scheduled for release mid 2011 and late 2012, respectively. I've already covered those, so I won't go into detail. They are also trying to promote Netbeans as the standard IDE for Java developers.
Then the presentation turned to JavaFX. It seems that JavaFX the scripting language is going away, but the technology is staying. JavaFX 2.0 plans are to move the script APIs to Java, so that developers won't have to learn a new language. They also plan several enhancements like binding APIs, Hardware Accelerated Graphics, HD Media support, etc. They showcased a demo where several video sources were being displayed simultaneously, with 3D effects like breaking a single video into hundreds of simulated cubes that would still play parts of the video. The plans are to release this sometime next year.
Overall, I don't think the presentation had much impact. It seems to me that, intentionally or not, the keynote was just a message from Oracle that is business as usual, and that they plan on keeping Java around for a while.
Spring Roo
I attended the session entitled "Extreme Java Productivity: Enterprise Applications in Just Minutes", which is just a fancy session name for the presentation of Spring Roo. What is Roo? In short, Roo is a Rapid Application Development tool that allows you to start a typical webapp project from scratch, add things like database, entities, etc. and end up with web user interface to manipulate that info. There are two main ways to use Roo: through a shell interface, or through the SpringSource Tool Suite. Either way, all is done through shell commands that lets you generate code. It is said to be easy to use and extensible, and the code is only affected at development time. There's no runtime changes or anything like that.
It supports many of the Java APIs, like Java Bean Validation, JDBC, Transactional APIs, several JPA implementations like Hibernate, Apache OpenJPA, Google App Engine, etc. Roo is a "hybrid" code generation, which means that does passive generation at the start to automatically create source code from commands, but it also maintains the code in sync through active generation. The code itself tries to be as much non-attached to Roo as it can be, and there are ways to strip out all the Roo-specific parts from your final code once you're ready to go to production.
I saw the demo for Roo and I must say it looks pretty cool. He created a new project, assigned the database and persistence framework, added some entities and properties and deployed to an embedded web server. It all went pretty smoothly, except for a small IDE crash at the middle of the demo, but that's how demos are supposed to go, isn't it?
It supports many of the Java APIs, like Java Bean Validation, JDBC, Transactional APIs, several JPA implementations like Hibernate, Apache OpenJPA, Google App Engine, etc. Roo is a "hybrid" code generation, which means that does passive generation at the start to automatically create source code from commands, but it also maintains the code in sync through active generation. The code itself tries to be as much non-attached to Roo as it can be, and there are ways to strip out all the Roo-specific parts from your final code once you're ready to go to production.
I saw the demo for Roo and I must say it looks pretty cool. He created a new project, assigned the database and persistence framework, added some entities and properties and deployed to an embedded web server. It all went pretty smoothly, except for a small IDE crash at the middle of the demo, but that's how demos are supposed to go, isn't it?
JDK 7 and Java SE 7 session
Mark Reinhold just finished his presentation that describes what lies ahead for Java 7. He divided the new features in 5 topics: Productivity, Performance, Universality, Modularity Integration, Serviceability.
In the Productivity area, we should expect to see new features like simplified Generics, which allows for easier code writing by not having to repeat the generic part both in the declaration of the variable and in the instantiation of the object. There's also the new try syntax for using resources, which allows you to declare temporal resources that need to be closed after the try block is done.
In the performance area, there are several things that come for the new version, which include the Fork/Join Framework, in which you can take a long running process and divide it in several threads, which is done automatically by the framework. Also, they introduced the concept of Lambda expressions, which is Java's way of implementing closures, combined with default methods for Interface declarations to allow for the expressions simplification. They also introduced the concept of reification, value classes and the long awaited properties.
In the universality arena, they introduced a new project, DaVinci, which will allow first-class architectural support for languages other than java, like Ruby and Python.
Modularity integration, which they call Project Jigsaw, is probably one of the coolest features to me, and what they're trying to do is take away the classpath "hell" in which you have to define every single jar on the command line, and instead you create modules, and use a special module definition language where you specify the dependencies. New tools are introduced for this, jpkg which creates modules, and jmod, which allows for the management of the modules. When you create a new module, you install it in a local repository. As for the dependencies, you can add external module repositories so that the dependencies are downloaded and installed automatically. They even integrate with Maven, which is great because there are already lots of resources in the different maven repositories. There's also a new package format, jmod, which is supposed to be better for compressing java class files, and they will even support the generation of rpm (one of Linux package formats) natively.
Finally, in the Serviceability area, they mentioned something called JVM Convergence, in which they want to extend the concept of a jvm make it a black box, which means you will be running a virtual machine that might be composed of one or more real machines in the background.
As for the release schedule, it seems like they are going with plan B. In case you didn't know, Mark Reinhold commented on his blog the current release schedule and how it was unrealistic. Some of the features have been finished, like Project Coin (in part) , InvokeDynamic (dynamic language support) and Fork/Join Framework and some features that aren't finished like Jigsaw (modules) and Lambda (closures). The idea is to release the completed features mid 2011, and move the rest of them to Java 8, to be released (hopefully) Late 2012.
As an ending note, he mentioned that they will continue with the same Open Source License (GPL v2 with classpath exceptions), and they want more developers to be involved in the process. More information about this can be found at the main JDK 7 site.
In the Productivity area, we should expect to see new features like simplified Generics, which allows for easier code writing by not having to repeat the generic part both in the declaration of the variable and in the instantiation of the object. There's also the new try syntax for using resources, which allows you to declare temporal resources that need to be closed after the try block is done.
In the performance area, there are several things that come for the new version, which include the Fork/Join Framework, in which you can take a long running process and divide it in several threads, which is done automatically by the framework. Also, they introduced the concept of Lambda expressions, which is Java's way of implementing closures, combined with default methods for Interface declarations to allow for the expressions simplification. They also introduced the concept of reification, value classes and the long awaited properties.
In the universality arena, they introduced a new project, DaVinci, which will allow first-class architectural support for languages other than java, like Ruby and Python.
Modularity integration, which they call Project Jigsaw, is probably one of the coolest features to me, and what they're trying to do is take away the classpath "hell" in which you have to define every single jar on the command line, and instead you create modules, and use a special module definition language where you specify the dependencies. New tools are introduced for this, jpkg which creates modules, and jmod, which allows for the management of the modules. When you create a new module, you install it in a local repository. As for the dependencies, you can add external module repositories so that the dependencies are downloaded and installed automatically. They even integrate with Maven, which is great because there are already lots of resources in the different maven repositories. There's also a new package format, jmod, which is supposed to be better for compressing java class files, and they will even support the generation of rpm (one of Linux package formats) natively.
Finally, in the Serviceability area, they mentioned something called JVM Convergence, in which they want to extend the concept of a jvm make it a black box, which means you will be running a virtual machine that might be composed of one or more real machines in the background.
As for the release schedule, it seems like they are going with plan B. In case you didn't know, Mark Reinhold commented on his blog the current release schedule and how it was unrealistic. Some of the features have been finished, like Project Coin (in part) , InvokeDynamic (dynamic language support) and Fork/Join Framework and some features that aren't finished like Jigsaw (modules) and Lambda (closures). The idea is to release the completed features mid 2011, and move the rest of them to Java 8, to be released (hopefully) Late 2012.
As an ending note, he mentioned that they will continue with the same Open Source License (GPL v2 with classpath exceptions), and they want more developers to be involved in the process. More information about this can be found at the main JDK 7 site.
JavaOne Day One: Stuck at the Airport
It is the first day of JavaOne, and I'm sure it is exciting from all the tweets and posts I've seen from other people. Unfortunately for me, my excitement comes in the fact that I have to wait more than 2 hours for my Continental flight, which has been delayed due to the fact that the plane that was supposed to take us to San Francisco encountered some turbulence on the way in, and it was taken out of circulation. Some turbulence that must have been.
And to top if off, I've plugged my Macbook Pro power adapter to several sockets and it doesn't want to charge. I've seen other people connect stuff to the socket, so I don't know. Hopefully it's just the adapter and I can buy one tomorrow at the Apple San Francisco Store.
I am very sad at the moment. Hopefully the trip will get better.
And to top if off, I've plugged my Macbook Pro power adapter to several sockets and it doesn't want to charge. I've seen other people connect stuff to the socket, so I don't know. Hopefully it's just the adapter and I can buy one tomorrow at the Apple San Francisco Store.
I am very sad at the moment. Hopefully the trip will get better.
I'm going to JavaOne
I guess I should've probably said something before, but I'm actually going to be attending the JavaOne this year, thanks to Oracle. They were kind enough to give me a Blogger Conference Access pass which allows me to attend not only all the conferences at JavaOne, but also the ones at Oracle Develop and OpenWorld. This is going to be a very interesting conference, and I'm looking forward to seeing the talks and meeting old and new friends.
Oh, and in preparation for that, I hope I can finish this weekend a long overdue change I've been planning for my blog.
See you at JavaOne!
Oh, and in preparation for that, I hope I can finish this weekend a long overdue change I've been planning for my blog.
See you at JavaOne!
Categories : Java

