OSCON 2008 and Web Frameworks of the Future
July 30, 2008
Guest Author - Matt Raible
Last week, I attended O'Reilly's Open Source Convention (a.k.a. OSCON) in Portland, Oregon. This was the 5th year I've attended (and spoke) at OSCON. I really like the diversity of open source projects and languages discussed at this conference. You can find always find good sessions on Perl, PHP, Python, Ruby and even Java. Of the many sessions I attended, the ones I learned the most from were Google XML Pages by Harry Heymann and Laurence Gonsalves and Even Faster Web Sites (PPT) by Steve Souders. If you didn't get a chance to attend OSCON this year, you might try watching OSCON in 37 minutes by Gregg Pollack. This is a video where Gregg asks many speakers to summarize their talks in 30 seconds or less.
On Wednesday, I presented my talk titled Web Frameworks of the Future: Flex, GWT, Grails and Rails. I was inspired to do this talk when I first heard of SOFEA (Service Oriented Front End Architecture) and SOUI (Service Oriented UI) last fall. These acronyms suggest the same type of architecture; one where the backend serves up data (via SOAP, REST, etc.) and the frontend handles page flow, navigation, etc. SOFEA was created by Ganesh Prasad, Rajat Taneja and Vikrant Todankar in their "Life Above the Service Tier" paper, while SOUI was created by Nolan Wright and Jeff Haynie in a couple of blog posts.
To do research for this talk, I created two different versions of the same application. One was with Flex and Rails and the other was with GWT and Grails. While I didn't complete the application before the talk, I do plan on continuing to work on it in my spare time and will hopefully have something to show later this fall. The application I'm creating is called "Rich Resume" and will allow you to edit and publish your resume online quickly and easily. If everything goes well, I'll add the ability to import your LinkedIn Profile to get started. As far as my progress on the application, I was able to finish both backends with Grails and Rails in under 25 hours. Both framework's out-of-the-box dynamic scaffolding didn't support one-to-many relationships very well, so I did have to tweak some things. With Rails, I was able to use ActiveScaffold to solve my issues. With Grails, I had to generate Controllers and then manually tweak them to add one-to-many and REST support.
As far as Flex and GWT, I found them both easy to get started with. I got bit early by GWT's Same Origin Policy, which made it difficult to develop the frontend and backend on different hosts. After moving the GWT app into Grails (using the GWT Plugin), things went much smoother. I was disappointed to find that GWT doesn't support REST too well, but there seems to be many folks that share this same sentiment and quite a few solutions are being developed (for example, Restlet-GWT). While Flex allows for cross-domain communication, I was disappointed to find it doesn't support zero turnaround (save/refresh) outside of an IDE. I'm sure over the coming months, I'll develop a greater sense of affection for these frameworks, but I also think it's important to note first impressions.
Below is my presentation for your viewing pleasure.
In October, I'll be presenting a similar talk at the Colorado Software Summit. This time, I'll be using Appcelerator to build my Rich Resume application. It should be a good show, especially since my colleagues Yan Pujante and Ikai Lan will be speaking. If you want to learn about how they've enhanced LinkedIn's applications and architecture, you won't want to miss their talks.