This post would be more appropriately named "Where my knowledge of building web applications falls short" - the title is kinda inflammatory and a lot of the commenters here likely haven't bothered to read it and are just throwing in their two cents on the technologies mentioned in the title.
None of the complaints here are the fault of Ruby or Sinatra. One exception could be the trailing slashes complaint. The issue exists in really any web framework, though. Flask, for example, will give you the same hiccup.
I tend to defeat it in Flask with `app.url_map.strict_slashes = False`
> There are too many ways to access parameters
This is a bad thing? The framework gives you flexibility to build your program the way you want, and the way your specific problems might require.
> You will need much more than included
Well... yeah. This is not a batteries included tool for building websites end-to-end ... it's a simple way to map an HTTP request to Ruby.
> Rewriting www.yourpage.com to yourpage.com, or the other way around
These are definitely not responsibilities for an HTTP -> Ruby library and the first 3 are certainly responsibilities for your public-facing HTTP server (Nginx, etc...)
These complaints aren't even consistent. The author complains about being given too many options for accessing parameters but also complains about not having enough options for templating, internationalization, various devops things, ORM...
Sinatra is a minimalist framework. It even describes itself as being a domain specific language, not a framework. IMO author should have just gone with Rails if they wanted an easily extendable, batteries-included framework with a massive community.
Of course, I agree. But though in practice Sinatra may be just a library for routing HTTP requests to a Ruby application, it is marketed as a relatively complete environment for building web applications, making a bunch of these criticisms valid.
None of the complaints here are the fault of Ruby or Sinatra. One exception could be the trailing slashes complaint. The issue exists in really any web framework, though. Flask, for example, will give you the same hiccup.
I tend to defeat it in Flask with `app.url_map.strict_slashes = False`
> There are too many ways to access parameters
This is a bad thing? The framework gives you flexibility to build your program the way you want, and the way your specific problems might require.
> You will need much more than included
Well... yeah. This is not a batteries included tool for building websites end-to-end ... it's a simple way to map an HTTP request to Ruby.
> Rewriting www.yourpage.com to yourpage.com, or the other way around
> Serving your site over https
> Redirecting all http:// pages to https://
> Running tasks in the background
> Saving data in a database, and reading from it
These are definitely not responsibilities for an HTTP -> Ruby library and the first 3 are certainly responsibilities for your public-facing HTTP server (Nginx, etc...)