{ by david linsin }

May 25, 2009

Make it Easy to Contribute

The past couple of weeks, I've been playing a lot with Restlet, a Java based REST framework. I like the it a lot, because it's easy to use and you can get it up and running in no time.

The current version of Restlet is 1.1, but when I compared it to the upcoming version 1.2-M2. it was clear that I would start using that right away. It has built in Google App Engine support and uses an Annotation driven approach, which increases testability and ease of use. This is one of the rare uses cases, where I think Annotations are perfectly suited, but I'm digressing. Overall, it was a natural choice to use the milestone build 1.2 right from the beginning.

After a couple of weeks of coding against 1.2-M2, I started to encounter a couple of weird side effects. After testing the code against the current stable version, it was clear, that it must be a bug in the 1.2 milestone release. So I checked the Restlet site, which nicely describes the process of reporting bugs.

Before entering a new report, you should query the current issue database for similar open issues.

As a decent developer, I followed the link to the issue tracker and saw this:


I was shocked to see this kind of interface! I know I'm a developer and I should love these kind of fine grained and detailed options to query an issues tracker, but that's too much! It's not the first time that I see this interface, Java.net uses it too and I just think it's a PITA to use! Compare it to google's code hosting issue tracker interface:


It's worlds apart in terms of usability and ease of use! And the screenshot above even shows the "advanced" search mode. In most cases, you can find everything with a single search box - google like!

I think, if you want the community to interact and contribute to your project, make it as easy as possible for them. They are trying to help you! We all know the problem of issues reported multiple times or reporters not taking time to correctly file an issue. However, every feedback is valuable and you can always ask for further and more detailed descriptions, if necessary.

Coming back to my bug in Restlet, after I managed to query the issue tracker, I saw that it had already been reported. So I decided to switch back to the current stable version. Unfortunately, I had to jump through a couple of hoops to make it work on the GAE, but that's another story altogether.


Anonymous said...

Have you tried JAX-RS (JSR-311)? Restlet was the basis for the standardization efforts and IMHO JAX-RS simplifies development even more. I recently created a project setup for a customer based on EJB-3 with RESTeasy in the view layer and I was amazed how well it worked. Documentation is better than Restlet's and there are several example projects that you can steal ideas from. And there's still the JSR if you need nitty gritty details.

David Linsin said...

Thanks for the pointer to RESTeasy, I haven't heard of that one.

I followed JAX-RS closely and heard a talk about the final release at Devoxx last year. It looks quite cool, but for me RESTlet was the most lightweight choice...and it runs in the GAE.


  • mail(dlinsin@gmail.com)
  • jabber(dlinsin@gmail.com)
  • skype(dlinsin)