Saturday, 13 June 2009

JavaOne 2009

I am so sad it is finished and need to wait next year. Just after Google I/O as I was organising my notes, Moscone north&south was dressing up for JavaOne. JavaOne is great! Imagine a conferess where Sun, Oracle, IBM and Microsoft can be on stage. It is the united nations of software world developers who left Sun and join rivals such as Google and Adobe have sessions and they still perform the best ones. Just like someone i really respect told me, if you are going to attend one go to JavaOne...
Everything started on monday at CommunityOne where any one can attend sessions for free and listen the footsteps of JavaOne. There are quite nice sessions in CommunityOne too so i really suggest you to attend even not going to JavaOne. Of course the real fun started on June 2, tuesday. As the doors open Chris Melissinos, this years host welcomed us all. Everyone was expecting to hear some news about the Oracle but it was more than that very soon Larry Ellison was on stage declaring his support on Java, community and specially JavaFX! He even asked the team to rewrite OpenOffice with JavaFX. Larry stated the only going to change in Java world would be the funds they are going to inject, and they will never change the structure of Java. If he is honest i think this deal can be a new age for Java.
As the key note ends we started running to our sessions. Here are some favourite topics from this year;
JavaFX, well after Larry's support everyone can be more focused on JavaFX. Actually i am very suprised to see hot the tools got mature. It seems Netbeans getting much better with JavaFX, the photoshop plugins is ready, Authoring tool which seems amazing is on the way. There was even non Sun tools for JavaFX such as JavaFX Builder from Reportmill which is just web start application and works great! JavaFX may not be all complete and very mature but its definitely going great and the progress lately is worth to mention.
Cloud is everywhere, before i went I had heard San Francisco is called the Fog City but what I saw was a city in cloud. Amazon is hiring people for their EC2, Google is promoting the App Engine and they are quite confident. Finally Sun also introduced their own Cloud which looks very promising but sadly it is just really in the clouds now...
The topics for the enterprise world is of course Spring 3, EJB 3.1, Seam, Servlet 3.0 and of course JPA 2.0.
Here are some more in details from the sessions I joined;

Monday June 1: CommunityOne
OpenSSO seems interesting, I will consoder giving a try if I have chance. Peronally I used CXF more than Metro but always knew they offer the best compability with Microsoft. Metro team mentioned the same thing. Actually they accepted they highlighted the compability so much that people only consider them for MS integration, which is a fault i did too. Well they are also shortlisted.
Jersey is very fun to use and very flexible. I was using it to provide services for a mobile project but I had chance to see much more in detail.
JPA 2 makes the API really complete, now you can really use JPA annotations instead of vendor specific ones, glad to see the changes, well done guys.

Tuesday June 2: JavaOne 1st day
JavaOne started as i mentioned, after watching Larry on stage telling us not to worry but i still wonder what will happen to Netbeans and MySql.
(TS-4605) Enterprise JavaBeans™ 3.1 (EJB™ 3.1) Technology Overview
Ok my first session on JavaOne. EJB 3.1 is quite nice move, the new features choosen in a nice way. EJB lite and removal of local interfaces are nice features and they will provide faster development.
(TS-3790) Java™ Servlet 3.0: Empowering Your Web Applications With Async, Extensibility and More
Servlet 3.0 really makes me excited. Biggest change is the async calls which is a great feature. I think servlet days are definitly back.
(TS-5577) Introduction to the JavaFX™ Technology-Based API (Graphics and Animation)
JavaFX doing great progress in tool support, preparing Flash type time based animations. You may say why to use it since there is flash. Ok here the output is pure JavaFx code and offering good integration with existing Java stuff. Even you prefer to continue Flash, it is very nice to have a competitor and a different approach in case you need.
(TS-5225) Spring Framework 3.0: New and Notable
Spring 3 looks very well planned and organised. Annotation support is at the maximum and the framework evolved in such a good way. They had a very nice presentation showing how to build a project with their web framework. Result is fast, easy to code and very clean. Although i prefer using spring just for backing services, what they can provide is much more than that and i will keep that in mind :). They strongly encourage you not to use XML anymore
(TS-4640) A Complete Tour of the JavaServer™ Faces 2.0 Platform
JSF is getting much much better but to be honest it is still boring when compared spring web, gwt or rich clients like flex and javaFx. If you are a fan of JSF you will definitely be happy, if not then this wont convert you to be a fan.
Actually I as registered for 3 BOF sessions but I was invited to JCP party so missed them. The Java Community Process Party was fun too, saw some friends from google, met some guys from europe and of course had JCP wine. I return back to Moscone and attended 1-2 more sessions. Well if you are interested JavaOne offers you sessions even after party hours.

Wednesday June3:
Second day started with the keynote from Sony Ericsson. Well I can't it is very inspiring. They brought a guy on stage to code a twitter app on Sony Ericsson's platform. It was far from being impressive, they claim he is writing the code on stage but we did not see the whole code so doesnt mean that their platform is very easy, I mean what if he is just a genious writing code like no one else can... then what does this demo mean?? we employ such people.. come on Sont find a better idea. Actually we even barely see him coding since his screen was a small picture in picture image in the main screen. So even he was pasting some code probably we wouldn"t notice. Well the second part was even worse, a guy came up to the stage with a brand new phone with a menu (XMB) stolen from Playstation 3 and PSP and they wanted to show us how they connect from phone to ps3 and watch a video. The thing is they couldn't. They couldn't play, even see anything and I can't really imagine they play games on it. The point is they are 30 cm away from ps3 but can not make it work while they are telling us it work somewhere aroung the cith just on mobile data line and they blame so many people using twitter that the network is down. Come on guys you re building a twitter app then balme twitter for second part... So will u stop everyone twitting when u release the phone???
(TS-4514) Building Rich Internet Applications with the JavaFX™ Programming Language
(TS-4069) JavaFX™ Technology in Action: From Design Tool to Desktop, to Mobile Device
Ok JavaFx again, but must admit it is fun and looks great. Mobile device shows were also fun but I hope sun realises if vendors such as Nokia, Ericsson etc does not want JavaFx on their device there is nothing they can do. Again I must mention, tool support getting much much better on JavaFX side. The generated code is not hard to understand and can be easily modified by hand. Using css based declaration instead of xml based declaration of rivals Flex and Silverlight makes the output in less characters and mostly less confusing. However, sometimes the output can become a bit complicated and harder to follow than xml. Oh one more think another tool for JavaFX, JavaFX Studio Plugin from Exadel... worth to try...
(TS-5217) "Effective Java": Still Effective After All These Years
This is a classic, going JavaOne and not attending is a sin. Oh let me tell you one thing when you watch Joshua on stage you feel like standing next to God of Software, although when you see and talk to him face to face you can' t believe how gentle and modest person he is. He clearly shower great examples to follow and not to follow on stage. When you watch him you really feel like you are a beginner getting lessons. End of session he magically disappeared and apperaed in the bookshop. Of course I wouldn' t mind buying a copy of "Effective Java" to get his sign, eventhough i used to have the book and read it many times before. Next year if you will be there please do not miss him!
(TS-5214) Java Persistence API 2.0: What's new?
What is new? all the missing features seem so complete now. I remember how JPA annotations were not enough and we need to use hibernate specific annotations in previous projects. JPA really become a complete abstraction layer at last. Validation, ordered lists, embeddables, and much much better inheritance mapings are some of the new features. Criterias and Examples are a part of JPA now and it also supports optimistic and pessimistic aproaches.
(TS-5418) Building Commercial-Quality Eclipse Plugins: By the Guys Who Wrote the Book
Well actually should be one of the guy who wrote the book since only Dan Rubel was there. This is also one of the best sessions you can ever watch. It was a very detailed session on commands, how to build the menu contribution, how to save your plugins state on exits, perspectives, handlers... As much can fit in the time. It is so hard to not to buy the book after you watch the session which s available at Java Bookstore (of course if you are not lucky enough to get a free on from him). Dan really showed detailed stuff and gave good information about how plugin engine works, I wish he had more time to show more stuff.
(BOF-1304) Google App Engine: Java Technology in the Cloud
Clouding is one the most popular topics, and GAE is a promising one. Actually if you want to use GAE you must accept some limitations; it uses google stardart apis, limited to 30 sec http requests, no serer push, read only file system, no threads, runs on jetty based server but doesn't supprt jetty specific features, no tework connections, no 2d, no native code, restricted reflection, doesn't have a full relational sql database with joins! Sounds scary, no... Actually it is great all those features are what google label as bad, evil and causes poor performance. They offer alternatives for anythong they don't support. First they ask you to design a denormalised database not relying on joins on BigTable. What they ask makes sense, they say they use this in all google projects runs fast and can be used in this way if you change your design perspective. It doesn't have schema or global transitions but it is naturely partioned, hierarchical datastore with full JPA/JDO support. No threads or server push but they have webhooks, so for example you can callback when an email comes. No java 2d but they have an images API. They support guice, spring, aspectj, blaze (which i had some problems), grails, gwt, tapestry, jrucy, jython with a full servlet 2.5 container and this all comes for free as startup and everything is configured out of the box. Give it a try!

Thursday June 4:
Ok I started feeling sad since we pass the half way. Started posting twitter messages like "Can please someone extend JavaOne" but no one cared... Thursday was an important day in the history of JavaOne. It was the day where Microsoft was on stage for the opening keynote. They try to convince us how they work for compability, how they support open platforms.. etc. I hope they are honest, but i really feel like Microsoft started loosing in all fileds. Everyone in the confrence (not only presenters!) use mac books or linux pcs even on Sun terminals which people use to check mails, do registration people choose to run on ubuntu instead of windows 7 (during boot you given chance to choose between ubuntu 8.04 and windows 7). Microsoft is a key player I hope they just don't fade away... It was nice to see dteails of project Stonehenge, whichs is for interoperability between Java and .net.
(TS-4839) Enterprise Integration Patterns in Practice
This session was much more than I expected. It was about Apache Camel and Project Fuji. While Bruce Snyder showed us how to use Apache Camel and reduce Enterprise Integration codes dramatically, Andreas Egloff recreate the same solution on Project Fuji. Both look nice and easy to use. Apache Camel offers very easy and nice way to script and route messages where Fuji offers a web based UI to draw for similar purpose. I just feel like Camel is a bit more stable but i think easier to do wrong stuff since Fuji offers graphical UI.
(TS-5205) Writing Killer JavaServer Faces 2.0 UI Components
I am not a fan of JSF and the progress made in JSF 2.0 is not enough to convert me as a fan. Frankly I will consider either rich clients like Flex or JavaFX, or will just use GWT. However I must admit JSF going great, the new features are well choosen. This session was ok, but most of the examples didn't work but at least we have seen the error messages are more clear.
(TS-4086) Visual JavaFX Techology Based Design with JFX Builder
Go download and give it a try! It is a web start application (actually a full IDE) which lets you build JavaFX just the way you build Flash and it is free. The generated code is not hard to understand and seems portable. I am very suprised to see such a product from a third party. It is one of the very few icons on my desktop!
(TS-4351) Building Facebook and OpenSocial Applications with Java Technology
Interested in how to build apps for social sites? this was a session for you. Differences between facebook and open social containers, types of datas and actions, how to integrate, use services and buils your UI...
Sadly I missed (BOF-4548), (BOF-4870) to attend After Dark Bash Party at Marrion. The band was nice also the food. Met with some friendly Indian guys who offered me a seat and even their drink tickets.
(BOF-4844) Java and JavaFX technology and the Nintendo Wiimote: Just How Much Fun Can You Have
It was worth leaving the party early to join this session. I've always enjoyed watching sessions of Java Evangelists Angela Caicedo and Simon Ritter, this time it was much more than enjoying. First Simon gave some technical details about the setup. It is very interesting to learn Nintendo's wiimote has a horizontal sensor covering more area on right side than left, wonder if this is racisim against lefties :). Actually I tried to work with wiimote using WiiRemoteJ but of course they went much far than me. Ohh by the way this impressive show was a sneak peak of the following days key note; Gosling's Toy Show...

Friday June 5:
Godfather of Java is on the stage, this is the long waited show by might James Gosling. I have seen him several times during JavaOne but still seeing him that close on the stage is great. This was the best keynote in JavaOne, its is both fun and showing good uses of Java (such as health and education).
(TS-4564) Gaming Package for Java Technology on TV: Solving the Gaming Problem
A session about basics of gaming concepts, actually I was expecting more. Seems like either the presenters or the Java is not really prepared for the new age HD TVs.
(TS-5307) Building Next Generation Web Applications with the Spring 3.o Web Stack
First of all SpringSource Tool Suite is free! and you dont need to have a seperate download just start your eclipse and add the update link. Spring is very inspirational and doing great, I can't imagine where would Entreprise Java be today if they weren't existed. Spring 3.o has great improvements and features and will be available soon. The other news is (which I had been using for a long time) BlazeDS integration. Spring accepts and integrates BlazeDS as a core component which makes Spring as the best choice for Java-Flex integration. It was nice to meet Jeremy who is the project lead of Blaze integration, although did not have much time to talk.
(TS-5485) Case Study: Automating Financial Services, Using a Java Technology-Based Enterprise Server Bus, Flex and PDF
A very interesting session showing how Business Process Management would be with Adobe tools. Integration wirh Flex and PDF offers the most impressive UI both for the user and the development process. Well they promise us to send education DVDs, still waiting.
(TS-4644) Move Your Users: Animation Principles for Great User Experiences
This was the best session I watched at JavaOne. Romain Guy of Google and Chet Haase of Adobe (who used to be in swing team and wrote the great book Filthy Rich Clients) made a great show about how to design and animate user interfaces based on the basic animation rules of Walt Disney. The rules, the slides, the examples and how they present it was just great!
(TS-4062) Building Java Technology-Based Web Apps with Google Open-Source Technology
Thats what they call Googley Java. Google doing great with Java and likes to show off how they do it. Want to build a web application? Use Guice, design with GWT, use runAsync methods for performance (how to use? just watch story of the compiler session at Google I/O) and test with webDriver. Great session also showing how MVC should be.

The bookstore was looking so attractive and charming. The ones I bought? ok here is the list;
Effective Java 2nd edition, Bloch (signed :) )
Essential JavaFX, Anderson Anderson
Eclipse Plugins 3rd edition, Clayberg Rubel
iPhone in Action, Allen Appelcline (actually I was looking for another one, but i always like in action series)
GWT in Action, Hanson Tacy (after so much google and GWT stuff so hard not to buy)
Beginning JSF2 and JBoss Seam, Tong (Gift from Apress, Thanks!)
Web 2.0 Architectures (Gift from Duane Nickull from Adobe, Thankss)
Adobe AIR for Javascript Developers (Gift from Adobe)

Well thats the end... at least for this year. After this session I sit around for a long time and didn't want to leave Moscone. Than I realise people carrying boxes, lcds around and instead of carried out I left the place.
Thanks for the magic show Sun, see ya next year...