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.


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.


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.


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?


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.


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.


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!


New podcast series

A couple of weeks ago, a friend of mine (Craig Tataryn) asked me if I could participate along with him and other people in a weekly podcast. Jeff Genender, Justin Lee and Jason Whaley also agreed to join in this effort. Thus, The Basement Coders Podcast came to be, and I think we’ve had some interesting conversations so far, ranging from Mainframes to Cloud Computing and Web Sockets. Unfortunately I’ve been sick and wasn’t able to make it to the last 2 or 3, but I fully intend to come back.

If you have an hour or so per week, I’d fully recommend you listen to the podcast, and of course, leave comments on how we can improve it. You can also follow the podcast’s twitter @bcoders. I think we have some very interesting topics to cover in the near future, and suggestions are always welcome.


To JavaOne or Not to JavaOne

Ever since I started using Java back in 1997, I’ve wanted to go to a JavaOne event but was unable to. The closest I’ve been to one was two years ago, when I just happened to be on the same city (San Francisco) on a business trip.

But this year, even though technically I could go, I’m not so sure if I want to. I’ve yet to find a compelling reason to go and now that Oracle owns Sun (and therefore, Java), I don’t know if it will be the same. So, I have decided to ask any of you out there, Are going to JavaOne this year? Why?