I just arrived at JavaOne on a sunny Sunday afternoon. I got side-tracked on my way over to the Moscone by the Gay Pride parade rolling down Market Street. At first, my goal was to cross Market to wend my way over to the conference center, but then the parade was fun to watch for a while.
Once I checked in and got my conference catalog, I noticed just about every session is marked Advanced. If the session is labeled a "round-table" or sounds like marketing, it gets the Introductory label. There seem to be about three "intermediate" sessions offered. I'm wondering if most of the content this week really will be advanced, or is the labeling more of a grade inflation in our supersized world.
I point out this "advanced" nature of the sessions because I think a lot of the excitement in the Java world right now -- a lot of what will make JavaOne hot this year -- is the trend toward simplicity.
In the Java language itself, we have new features in 1.5 that should make programming easier: autoboxing/unboxing, the enhanced for loop, generics, typesafe enums, and the new java.util.concurrent package J2SE 1.5 that should make threading easier.
On the application server side, we have products like the Spring Framework and Pico Container to make developing and testing applications easier. On the data persistence side, we have products like Hibernate, iBatis, and Cayenne to help turn our database data into Java objects without all that messy JDBC code. And we even have the coming features of EJB 3.0 itself, which holds out the promise to make enterprise computing easier by not having to worry about the container as much as we have to today.
So overall, I see the life of a Java developer getting easier, at least in the coding part.
What I do see getting more difficult, though, is the increase in what Java can do. AWT, JFC, SWT, EJB, JAXB, JAXP, CMP, CMT, JAX-RPC, SAAJ, JAXR, JAAS... We can't be experts in them all. Java is just too big and getting bigger all the time. But if your specialty is on the client tier, IDEs and plug-ins help create GUIs better today than a few years ago, including web GUIs with tools like Java Studio Creator. If your specialty is the web tier, you have easier abstractions over the servlet layer with Struts, Tapestry, JSF, Spring and the soon-to-be open-sourced Net-UI package from BEA. If your specialty is the application server tier, you have tools like Spring today to help you get past the EJB comlexity, and EJB 3.0 in the future to help do the same. And the above-mentioned data-persistence packages.
And that's why I'm at JavaOne this year. We can do more with Java, and doing it is getting easier. There is more excitement about Java today than there was in the past two years, when a malaise seem to set in after .NET grabbed not only the headlines, but the attentions of IT decision makers. Now that the reality of .NET is starting to spread, that it is not a magically "easier" solution, I can proudly say:Java is back.