What's a good RIA to develop in 20 hours?
In less than two months, I'm making my annual trek to Portland, Oregon to speak at OSCON. To prepare for my talk, I'd like to develop the same application with two different combinations: Flex + Rails and GWT + Grails.
As luck would have it, I'm having a hard time coming up with a good application to write. I'd like to time-box it so I only spend 10 hours on the backend (for each) and 10 hours on the front-end, for a total of 40 hours for both applications.
Can you think of any good applications that would warrant a rich front-end and wouldn't take too long to create? I'd like to put both applications in production and generate enough traffic to be faced with scalability issues.
Over the next several weeks, I hope to start creating the applications and blog about what I've learned along the way. At some point, I hope to post an outline and a rough draft. With your help, I believe this can be an excellent presentation. If the presentation and applications are as good as I hope they'll be, it's likely I'll open source them for everyone to use.
Thanks in advance for any advice.
Update: Thanks for all the great feedback. I've posted a survey to narrow the choices.
Posted by Lo on June 09, 2008 at 10:55 PM MDT #
Posted by Steve on June 09, 2008 at 11:36 PM MDT #
Sorry to rain on your parade (but I *live* in Portland, and its still raining :-). But nothing you can build in 20 hours has the slightest bit of relevance to application developers who are faced with choosing a technology where it's going to take 20 *months* to build the thing (no matter what technology they choose, given that real world requirements will definitely change during that time).
Judging a RIA platform based on a 20 hour development experience sounds a lot like judging a language platform based on a 20msec microbenchmark :-).
Posted by Craig McClanahan on June 09, 2008 at 11:57 PM MDT #
Posted by Ignacio Coloma on June 10, 2008 at 01:10 AM MDT #
I think better comparison results for GWT and Flex can be achieved by using the same server-side technology. Otherwise you can get some kind of mixed feeling:)
For example Grails excellently integrates with Flex (I tried both combinations Grails/GWT and Grails/Flex and it is not easy to say which integration is better).
I suppose Rails also can be easily integrated with GWT as well and not only Flex.
Although I understand that from marketing perspective your decision is probably the right one;)
Posted by Leonid on June 10, 2008 at 03:18 AM MDT #
I'd have to agree with Leonid re ease of use with Grails/Flex. I've been building mini apps using the two and the apps keep getting more feature rich with little impact on productivity. Grails just makes it too easy and Flex is also simple. I'm having too much fun with the two.
Posted by Stephen on June 10, 2008 at 03:26 AM MDT #
Posted by Jeremy Anderson on June 10, 2008 at 05:08 AM MDT #
I recently had about the same amount of time to develop a nice demo for Wicket. I decided to make a web-mp3-player.
It consisted of the following parts:
1. Song listing
Using a mp3 framework I scanned a (server-)directory for the song-information tags (ID3). Created a listing of the songs which was sortable by artist/songname etc.
2. Modal window with playback
Using a small Flash-component I custom-merged into Wicket for playback, and using the modal window support in Wicket I created a nice on-screen popup with more song-information and a small player.
The demo was a huge succes, its very visual (and has good audio!) and shows what you're able to do in a small amount of time with the current web (2.0) frameworks.
Posted by Roy van Rijn on June 10, 2008 at 05:22 AM MDT #
I personally would like to see a RIA application where you could manage ones resume on-line. I remember reading one of your blogs from way back and you were trying to attempt this. I am not sure if this would truly be a great RIA application. I know this would be useful application to build off of. LinkedIn may find this useful!!
Posted by Peter Delaney on June 10, 2008 at 06:00 AM MDT #
I like Roy van Rijn's idea. I would add that you could point to someone else's FTP directory somewhere on the Internets and have the songs show up in the playlist. At play time, the file should be streamed or downloaded then played.
I could find a gazillion ftps with music in em.
Good luck. Im subscribing to your blog to find out what you end up developing and to follow along.
Posted by Mike on June 10, 2008 at 06:38 AM MDT #
Posted by Sylvain on June 10, 2008 at 06:52 AM MDT #
Posted by Chris M on June 10, 2008 at 07:18 AM MDT #
I'm looking forward to seeing you in Portland!
I found it interesting that you are planning to split programming 50/50 between back-end and front-end. Using Flex I find that I actually end up spending about 80 of my time on the front-end. Not because it takes longer but because building back-ends is so easy these days. For many applications it's the pixel-perfect UI that takes the most time. Anyhow, as for ideas for applications I don't have any great ideas other than that you should try to include Ribbit calling and Doug McCune's CoverFlow component in the Flex version - because both those make for great demos! :)
Posted by James Ward on June 10, 2008 at 08:19 AM MDT #
Posted by Jason McDonald on June 10, 2008 at 11:17 AM MDT #
You could help the boy scouts:
Boy Scouts Ask Open Source Community For Help
Posted by James Ward on June 10, 2008 at 12:28 PM MDT #
<quote> ...nothing you can build in 20 hours has the slightest bit of relevance to application developers who are faced with choosing a technology where it's going to take 20 *months* to build the thing... </quote>
Bah. You sound like Debbie Downer... and I happen to notice are the only one commenting who thinks it to be irrelevant. By the way, who the hell takes 20 months to build anything any more? The waterfall crowd still developing with EJB 2.x?
Posted by Country on June 10, 2008 at 03:42 PM MDT #
@James Ward I like the 90s-style 'under construction' graphics on the BSA site. Good for them though.
@Country +10 points for calling out Craig
Posted by Mike on June 10, 2008 at 04:23 PM MDT #
You could write a simple agenda application, with two views (month / day), to do some planning or you could write a kind of timesheet application.
These two would be nice examples.
Posted by -FoX- on June 11, 2008 at 02:57 AM MDT #
Wow. Is this really the Craig 'Struts' McClanahan?
If you get a vertical slice of an application up in 20 hours would the implementation be so different for a bigger app?
And if the requirements keep changing, you mean that technologies that help you build something in 20 hours will not help?
Ah, maybe you are referring to the "faces-config.xml" kind of approach that forces you to keep multiple files in sync using type-unsafe string expressions whenever navigation anywhere across your app has to be changed. Good luck with that.
Posted by Super Dude on June 11, 2008 at 03:34 AM MDT #
Posted by Sanjiv Jivan on June 11, 2008 at 06:04 AM MDT #
Posted by Raible Designs on June 11, 2008 at 11:21 AM MDT #