Thanks for the introduction to Twitter Commons! I've used Dropwizard in the past and loved it. It seems like the shared libraries of both frameworks -- Jetty, Jersey, and Jackson -- provide them with an equally strong foundation. Guice seems to be provided by default in Twitter Commons whereas it's provided via a separate module in Dropwizard, so that's more or less another commonality between them. Can anyone describe differences or pros/cons between using these two frameworks? (Similarly, who was being referenced in the phrase "an opinionated framework that forces certain patterns on you")?
This would be a far better article if it was interwoven with actual code examples. Otherwise, you'd have to switch back and forth between a copy and their code and the blog page to actually grok what they're talking about.
Please, if you're starting a new Java project, and have any say at all in the build process, don't use Maven. Go with Ant. You'll thank yourself later, and anyone else who ever has to build the project will also thank you.
Personally, I can't begin to describe the awfulness of Maven in words. I'd sooner use makefiles and shell scripts, or manually type in build commands written in pen on a stack of notecards.
But you don't have to take my word for it; here's an SO discussion about how much Maven sucks:
I haven't played with Restlet. From my experience Jersey's magic sauce is its annotations. Jersey's featured set of annotations can allow for expressive source code. Basically I can create and define my API with less boilerplate source code.