

What's new in Padrino 0.11 and 1.0 - DAddYE
https://speakerdeck.com/daddye/padrino-framework-0-dot-11-and-1-dot-0

======
jacquesc
Best feature of Padrino: multiple apps!
[https://speakerdeck.com/daddye/padrino-
framework-0-dot-11-an...](https://speakerdeck.com/daddye/padrino-
framework-0-dot-11-and-1-dot-0?slide=25)

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.

~~~
Argorak
So, you might either rejoice or be angry that we have a similar feature in the
works. Currently, its for code-sharing only, not assets. See the discussion on
how we address our personal pains with engines.

<https://github.com/padrino/padrino-framework/pull/1007>

~~~
jacquesc
Rejoice of course! Would be really nice to still have the option of not
wrapping of course, but distributing some apps via Gems is a nice feature too.

~~~
Argorak
No existing functionality was harmed in the making of this feature :).

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.

------
diminish
One more question; Could you name me some more reasons why I should use
padrino 1.0/sinatra instead of rails for my next startup or client project? (I
may reuse them with my team and clients). I am aware from your presentation of
speed, non-opinionated aproach etc, but appreciate some more technical
advantages/disadvantages for an HN discussion..

~~~
Argorak
As someone who has multiple Padrino apps running at customer sites:

\- 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.

~~~
DAddYE
I wouldn't able to explain better!

------
diminish
I use Sinatra a lot, and like the convergence of Padrino towards node and
other javascript stuff. After reading the presentation few questions in my
mind?

1) Is the routing an extended version of Sinatra's? 2) Is the throughput boost
already there in padrino or sinatra?

~~~
DAddYE
Actually the our router is totally different, is http_router, which is
something very complex and full featured, the new version of Padrino 1.0 will
use instead an extended version of sinatra.

2) Yep and will be more and more in 1.0

------
simonebrunozzi
The slides are awesome! Great work. I also like speakerdeck a lot.

~~~
daris
thanks!!! :) we put loads of hard work to make them happen! :) the next batch
will be definitely more interactive! ;)

------
wikimatze
Beautiful slides with so many information about Padrino. They helped me a lot!

------
jeltz
I really like padrino except one thing. The lack of automatic HTML escaping in
templates in the rails style. Is there any plan to implement that?

~~~
DAddYE
Yep! We will do!

~~~
jeltz
Awesome, Padrino is the nicest web framework I have worked with so far.

