Sinatra is great. I've been working with it for the last eight or nine months on various projects and I'm extremely glad about that choice. But I wouldn't call it "hyper fast" in any sense.
From a raw performance perspective, it's faster than Rails, but it has some issues with it's design that can cause extremely bloated memory footprints.
From a developer sense, it doesn't come with a lot (hardly any) of helpers, generators, or other fancy tools. So depending on your use case you could end up re-inventing some wheels.
It's biggest advantage is that it's small, lacks a lot of magic code, and doesn't force you into a specific structure. This makes it great for web services, small apps, or even small components of larger apps. But like anything else it's definitely not a silver-bullet.
By design it doesn't have a lot of helpers, generators, or other tools. Depending on your usage this could mean a lot of re-inventing the wheel.
The issue is with subclass style applications. If you use multiple sublcass apps mounted at different URLs via Rack you incur the full overhead of the framework for each subclass instance. It's not a bug, it's just the way it's designed.
I heard this one before, and for all I can tell it's simply not true. What's your setup?
I have tried some simple benchmarks against two apps. One with a single subclass, and another with 3 subclasses. The one with a single subclass used 22M (RSS), the one with 3 subclasses used 23M (RSS).
I don't have such a simple example handy, but it's not drastically different from your setup except I subclass an Application class, which subclasses Sinatra::Base. I'm loading about 10 subclasses, not 3. I don't have the numbers handy but when I last tested it, adding subclasses did add several MB of memory per instance.
While it doesn't have a lot of helpers or other tools that you're used to from Rails- you can always include ActiveSupport which brings many of those in and away you go!
Well that gives you some of the extensions, but it doesn't give you a lot of things on the 'view' end of the equation. You're handling your forms yourself, you're handling URL generation yourself, etc. Of course those are the things that attracted me to Sinatra, so I don't see them as problems so much as things to be aware of.
From a raw performance perspective, it's faster than Rails, but it has some issues with it's design that can cause extremely bloated memory footprints.
From a developer sense, it doesn't come with a lot (hardly any) of helpers, generators, or other fancy tools. So depending on your use case you could end up re-inventing some wheels.
It's biggest advantage is that it's small, lacks a lot of magic code, and doesn't force you into a specific structure. This makes it great for web services, small apps, or even small components of larger apps. But like anything else it's definitely not a silver-bullet.
By design it doesn't have a lot of helpers, generators, or other tools. Depending on your usage this could mean a lot of re-inventing the wheel.