When comparing Sinatra vs Dropwizard, the Slant community recommends Sinatra for most people. In the question“What are the best web frameworks to create a web REST API?” Sinatra is ranked 18th while Dropwizard is ranked 26th. The most important reason people chose Sinatra is:
Since it has very few dependencies, the loading time for a Sinatra app is considerably small.
Ranked in these QuestionsQuestion Ranking
Pros
Pro Small loading time
Since it has very few dependencies, the loading time for a Sinatra app is considerably small.
Pro Has only the bare minimum needed
Sinatra has taken an approach of having only the most useful components needed to build applications out of the box. It has simple routes along with a Domain Specific Language over a Rack layer.
Pro Enhanced productivity and less timewasting
The application can be run and debugged from the IDE without the need to recompile or redeploy the WAR file. This is because a Dropwizard web application creates on main program which starts the jetty container.
Pro Application metrics integrated into the framework
Dropwizard comes with application metrics integrated out of the box. These metrics provide a lot of useful information such as request/response time.
For example, to get the execution time of a method, the @Timed
annotation is used.
Pro Quick project bootstrap
Starting a project with Dropwizard si very easy and bootstraping is quick and painless. All that's needed is a single dependency added in the pom.xml
file and it's ready to go.
Cons
Con Hard to scale well
Because it's rather small and minimalistic, scaling up is not very easy with Sinatra. You need a great deal of knowledge on libraries and modules that may be useful for your particular use-case. As your application grows larger it may be hard to keep things clean and minimalistic, losing a lot of the advantages that Sinatra has.
Con Does not allow a lot a freedom of choice
Dropwizard removes a lot of freedom that the developer may have with other frameworks because of the fact that it tries to do everything itself. It chooses the best Java libraries for the job required, without allowing the developer much choice.