I'll preface this by saying that I'm biased towards Pyramid, and when I have to program - I prefer it. I begrudgingly program though - I'm usually on the business/product/management side. But in the past 3 years: I've been working extensively with Pyramid on a personal project, was CTO of a large media company that had a re-deploy onto Rails in-progress (a mistake that was scrapped), and was the Product/Tech advisor to medium sided media company that was on Django.
If you're doing a "Startup" that is in any way unique or looking to scale, I would only consider doing it in Pyramid. If it's going to be essentially a lot of basic functionality, something off-the-shelf (blog, e-commerce) and nothing really proprietary or large scale, then Django/Rails would be perfect. Aside from the language difference, Rails and Django are basically the same (there are some differences in approach, but both are very high level frameworks). If you are a building a one-off project, an advertising campaign, are a dev-shop working for a client's time-limited event, etc -- then Django/Rails are what you want, and Pyramid would be overkill. Pyramid / Pylons is a very low-level framework. You'll spend more time and energy getting some basic things done at the outset, but you won't ever be constrained by the Framework or Data Model, and your velocity will improve or stay consistent as you need to pivot or scale. You can make large changes with little work, and easily introduce "quick fixes" if needed. Django is very high level. It's so high-level, that most people I know consider it more like editing configuration files than writing Python. You'll be off to a quick start in basic functionality, but quickly feel constrained by a fairly rigid API and the need to do things the Django way. Your velocity will plummet as the project moves onwards. It can be exceedingly hard to implement a "quick fix", because the framework is so tightly integrated. Adding new functionality and addressing bottlenecks can be aggravating. Rails is basically the same as Django, except it's in Ruby. In terms of hiring... from firsthand experience it is incredibly hard to find *good* Django/Ruby developers. This has less to do with the concept of a "Developers Market" that others noted (which is true) than it has to do with the overall talent pool. While there are a lot of really brilliant Python/Ruby developers in the Django/Ruby community, I've found that the majority the community are Django/Ruby developers -- NOT Python/Ruby developers. These people tend to be pretty unfamiliar with the core language and just know the framework -- usually through a HowTo book or some sort of bootstrap class. Bad developers flock to the buzzwords: to Java, then to PHP, and then to Django/Rails. The result is that the signal-to-noise ratio in the Django/Rails applicant pool is ridiculously low -- and you can spend months trying to source candidates worth bringing in to an interview -- only to end up paying a premium for bad developers who simply know the stack. I've had Rails/Django devs with 2 years professional experience demand higher compensation than developers with 10 years of work experience who were experts in a field. It's a ridiculous premium. Lower-level frameworks like Flask, Pyramid, etc tend to attract developers more interested-in or experienced-with the language, the user pool is smaller and self-selecting. This is simply a correlated effect to the popularity of the frameworks. So you might identify 100 candidates for a Rails/Django position, but only want to interview 2 after seeing their resumes... meanwhile you might identity 5 candidates for a Pyramid/Flask position and probably want to bring all of them in. There are definitely a lot more "good" Rails/Django developers than Pyramid/Flask developers -- but you'll have to sort through hundreds of applications or profiles to find them. If you do go the Django/Rails route, I would suggest doing all your recruiting by targeting people through contributions to open source projects. All the best applicants I've met were either active contributors to larger projects, or had a few small (and well written) libraries of their own -- and I could quickly judge if they actually knew Python/Ruby or not. -- You received this message because you are subscribed to the Google Groups "pylons-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/pylons-discuss. For more options, visit https://groups.google.com/d/optout.
