* It doesn't really do much for you (have to spend lots of effort/time/learning plumbing in all the 3rd party libs)
* Lacks sensible defaults for many things
* Documentation is rather lacking. Oh, there's tons of it, but it's rather maze-like and hard to use if you don't actually understand the system. High-level overview/cookbook type stuff is severely lacking.
I do agree about Pyramid's initial learning curve being a bit steep (or, at least it was more than a year ago when I was first picking it up). Still, I fell in love with Pyramid because it didn't try to do much for me.
My previous company has a huge SQLAlchemy-based codebase with literally hundreds of defined classes, many with hugely complex relationships (as it was built on top of a legacy database that had accreted over many years). Switching to a non-Alchemy backend simply wasn't an option. They also have a large, complex web application built in Zope with hundreds of tested, working page templates. Django is the easy first choice when starting a new Python web app. However, if we'd replaced the Django ORM with SQLAlchemy and Django's templates with something like ZPT so that we could incorporate our large pre-existing code, there wouldn't have been a lot of Django we could still use. In particular, the admin would have been virtually unusable without a large amount of reimplementation to adapt it to our internal code.
Pyramid was a big win for us in that it used our preferred backend choices by default. More importantly, though, was that it's comparatively very easy to change those defaults without losing the rest of Pyramid's features. After a couple of hours of experimenting with integrating our legacy codebase, I had new pages up and running.
I have nothing bad to say about Django and I've used it successfully in other projects. It's a neat framework with a lot of talented people behind it. But Pyramid has its own charms, especially for those who absolutely need to do things their own way.
Comments
As an alternative viewpoint
* It's complicated
* It doesn't really do much for you (have to spend lots of effort/time/learning plumbing in all the 3rd party libs)
* Lacks sensible defaults for many things
* Documentation is rather lacking. Oh, there's tons of it, but it's rather maze-like and hard to use if you don't actually understand the system. High-level overview/cookbook type stuff is severely lacking.
I do agree about Pyramid's initial learning curve being a bit steep (or, at least it was more than a year ago when I was first picking it up). Still, I fell in love with Pyramid because it didn't try to do much for me.
My previous company has a huge SQLAlchemy-based codebase with literally hundreds of defined classes, many with hugely complex relationships (as it was built on top of a legacy database that had accreted over many years). Switching to a non-Alchemy backend simply wasn't an option. They also have a large, complex web application built in Zope with hundreds of tested, working page templates. Django is the easy first choice when starting a new Python web app. However, if we'd replaced the Django ORM with SQLAlchemy and Django's templates with something like ZPT so that we could incorporate our large pre-existing code, there wouldn't have been a lot of Django we could still use. In particular, the admin would have been virtually unusable without a large amount of reimplementation to adapt it to our internal code.
Pyramid was a big win for us in that it used our preferred backend choices by default. More importantly, though, was that it's comparatively very easy to change those defaults without losing the rest of Pyramid's features. After a couple of hours of experimenting with integrating our legacy codebase, I had new pages up and running.
I have nothing bad to say about Django and I've used it successfully in other projects. It's a neat framework with a lot of talented people behind it. But Pyramid has its own charms, especially for those who absolutely need to do things their own way.
Touché.
Pyramid will:
* get you laid.
* help you take over the world.
* bring about world peace.
* 100% compatible with emacs, vim, textmate, and even eclipse.
* enterprise mumble mumble certified.
* tool of choice for the coolest startups in the world.
* Compatible with multiple currencies, $ £ and €. So you can make three times as much money.
* venture capitalists prefer it. 'I will chose companies that use pyramid, over those that use Django.' -- pg