Just read Martin Aspeli’s post about his experiences using Pylons. Some people that have been around me and Alan might remember that we’ve been saying for quite some time that we need something Routes-like in ZopeLand, and also faster restarts or even hot reload.
At PyConBrasil last week there was some buzz going on about Grok. I do appreciate the efforts and I think that something like Grok might help a little bit with lowering the barrier for creating applications with Zope.
I do hope that people raise their eyes a little bit and look to frameworks like Pylons, and think about how they can integrate Routes with Grok. And to boot, if they can make a Grok application that can restart in under 2 seconds on average hardware, then I’m sold!
INFO root Startup time: 1.976 sec real, 1.960 sec CPU
Grok starts up in just a hair less than 2 seconds on my hardware – it’s a MacBook Pro with 2.1 GHz Core 2 Duo, so perhaps a bit spiffier than average hardware. It is a lot more pleasant than the 15 or so seconds my Plone restarts take.
Stating all of your URL patterns in a central place a-la Routes has it’s appeal. It wouldn’t be too hard to write a custom Traverser for a Grok Application that resolved the rest of the URL in a Routes-like fashion. You would need to constrain your object heirarchy to just container/model, or require that all objects are indexed like Plone’s portal_catalog, or use SQLAlchemy. Pylons Controllers could map to Grok Containers, and Pylons Actions could map to Grok Views. It’s not exactly a clean fit though, so you’d probably want to change the semantics of your Routes-like API a fair bit. Or perhaps with a heavy dose of metaprogramming you could have map.connect() calls create Grok Traverser classes, although that would probably be way too funky …
My grok app starts in 1.7 seconds.