As said in the blog post, I am not sure this will happen soon. Also, there might be a 1.5 release. I have been thinking of working on 2.0 for nearly two years now.
In any case, in my mind, Sinatra 2.0 would be a complete rewrite that should still be able to run a normal Sinatra app.
Here are a few things I'd like to tackle:
* Rework dispatch internals and routing (I have a couple of different prototypes for this)
* Move away from having all logic in one file
* Move away from having all documentation in one file
* Make it easier to write an app without using the routing logic (ie middleware, I have a couple of different prototypes for this)
* Turn pattern parsing into actual parsing rather than gsub'ing until it might be a valid regular expression (I have a working implementation of this)
* Make route parsing configurable (I have a working implementation of this)
* Turn settings into its own project
* Move towards a better event/hook system, so gems like NewRelic don't have to patch the hell out of Sinatra
* Have streaming rely solely on the Rack hijacking API
* Add better connection handling for dangling requests
* Separate templates into an extension (that might or might not be included in the sinatra gem)
* Improve content negotiation
* Better handing of encodings
* Drop support for all old Ruby versions. Since Sinatra is big about compatibility, such an opportunity to move forward would be hard to come by any time soon again.
* Redo the website?\
* ...
The main problem is: Whenever I speak about this, people get too excited or upset. This is esp true for publishing code of some of the prototype scripts I have/had that will most definitely not make it into Sinatra.
Any other ideas or comments are welcome any time.
If I have any code worth publishing, I will do so.
If you are eager to help, the Sinatra project that really needs work force is sinatra-contrib.
Konstantin