What's new in Padrino 0.11 and 1.0
speakerdeck.com
speakerdeck.com
Having to deal with the jankiness of Rails engines on a daily basis (on a client project), this feature would have been a life saver.
Multiple apps are not going anywhere, especially because they are a very nice way of seperating things without the overhead of having a gem somewhere else that is hard to keep track of.
Actually, the initial commit didn't even touch any existing methods.
- Almost nothing is activated without explicit choice (except security-related things and really default things, like sessions, mind you). This mitigates the risk of attacks that hit a component that you didn't implement without knowledge. See the XML-parsing attack on Rails (CVE-156) for that hit everyone, even if they were not conciously accepting XML. Padrino users using MiniXML would be affected, but those are only the ones that actually know that they are using it.
- You can learn the whole stack in just a few days. And by learning, I mean: including reading and understanding most of the source. This makes it much easier to get new people on board that didn't learn this specific framework for a few month already.
- Everything that can be changed can be changed via an API. (Almost) no need for monkey-patching.
- Very Rack-friendly. Programming Padrino well means that you leverage a lot of technologies that are standard in the Ruby anyways.
- No unneccessary magic for saving a few lines. The whole bootstrap-process is very straight-forward. If you want to know why something happens, its very easy to figure out the series of events from your code.
- Very low on stack frames. I hadn't figured that out before, but that makes debugging that much easier.
- Theres another thing that I call "load to memory", for lack of a better word: the mental overhead to understand and remember how that part of the framework that you are currently working with really works is low, so its easy to get it into your head once you need it.
- Its _very_ flexible. Everything that Padrino _doesn't_ do also means that you are free to implement things and it won't break during releases. For example, it doesn't really expect a fixed application layout - its just a very well chosen set of default load paths. If you want to change that: go ahead - organize your project in a fashion that makes sense.
- The best convenience parts of Rails (I18n and active_support) are available to you.
And finally: a completely different philosphical approach. We don't serve omakase, we provide you with fresh ingredients, pots and pans, because we believe that _you_ are the best chef.
1) Is the routing an extended version of Sinatra's? 2) Is the throughput boost already there in padrino or sinatra?
2) Yep and will be more and more in 1.0