Question

I am a developer who is looking for an Enterprise-ready web application framework for Python. My main concern is long-term support, extensive feature set and reliability.

I have been experimenting with Pylons and after my horrendous experience with Ruby on Rails on Windows where I even had to compile my own Postgres driver, Pylons and Python have been a godsend.

I believe Python, due to a very strong community and commercial interest, is definitely 'enterprise-ready' due to the number of available libraries and their efforts to maintain some semblance of backward compatibility for Python 3.0. My worry is:

Can we all say the same for Pylons 0.97?

On a side note, I have been figuring out how to get SQLAlchemy working with DB2 on Pylons so that I can automate basic CRUD operations. The current DB2 driver on http://code.google.com is quite useless only supporting SQLAlchemy 0.4. Do you think IBM is committed with making DB2 work with SQLAlchemy for the long term? Or you guys feel it's better to make SQLAlchemy interface with the ODBC driver supplied with DB2. Any disadvantages compared to using IBM's SQLAlchemy driver?

Was it helpful?

Solution

When it comes to enterprise ready, I'm not sure how much more ready a stack using Pylons with SQLAlchemy can be in the Python world. You're ready for massive legacy databases with crazy schemas (totally common in large corporate worlds), something where Django just falls apart at the seams. Sure, in Django, you could still use SQLAlchemy, but then all the Django contrib tools fall apart since they all rely on the assumption that you'd doing things the "Django" way.

Pylons has been around since mid-2005, and it isn't going anywhere. It's actually quite mature, and has a fairly slow and solid release schedule of 6-10 months between releases, with quite a bit of testing. One of the core Pylons developers is also a developer on Jython ensuring that Pylons can run on the JVM (which helps get Pylons based apps into enterprise environments that are hostile to things that can't be packaged up into a WAR file for deployment).

Regarding some of the other 'answers' here, the question is about whether Pylons is enterprise-ready, I have no idea why others were unable to read the question and instead chose to start preaching their own favorite framework. It's quite silly to say that you should use Django/Zope/Grok because it has "bigger uptake" or a "larger community", if that's the criteria the choice should be PHP, which makes the Django and Zope communities look itty bitty in comparison. Pylons definitely has a large enough community to sustain itself, especially as its rather lean and compact code-base don't pick up nearly as many bugs as the "kitchen sink" frameworks of Zope/Django.

OTHER TIPS

I would say that if you're worried about 'enterprise-level' support, you should be looking more at Django. Although you can debate the relative technical merits of the two frameworks, there's no doubt that Django has the bigger uptake, and there are quite a few large companies using it.

One additional reason is that IBM have (just in the last couple of days) released a Django driver for DB2, so you should have no problem using your existing database with the Django ORM.

define enterprise ready.

Also, if we're talking scalability, I would say you have a better shot with sqlalchemy since you can drop down to raw sql when necessary. Whereas the active Record pattern seems to be the cause of a lot of the value of high level frameworks, that can lead to scalability issues if you are throwing stuff together.

Of course "enterprise ready" to some people means complicated and expensive, is this is your definition, than I would say that no python web framework is going to meet your needs.

I consider a piece of software enterprise ready when it has stability and support.

I believe that Pylons/Python is stable. There are a load of sites using Pylons (including one of the highest traffic'ed sites, reddit.com).

Support wise I'd consider aspects like how easy it is to hire people who know Pylons or to purchase support contracts. This is a bit harder. If you plan to support in house Pylons is more than ready to go. If you are looking for support so that you have someone to take liability when the software breaks you might want to look elsewhere.

I'd second the call to use Django. I actually prefer Pylons, because it is much leaner than Django, but considering you specify "enterprise ready" I think you might want to hedge toward the larger framework and carry the kitchen sink around with you.

+1 for Django

Pylons is a good framework, but you will have to match all the components to create your own architecture, so I think it's more appropriate for leaner projects. For something bigger, I suggest Django, that's know to be on production on some large scale sites.

IBM recently released a DB2 back-end for Django, so might fit you well.

If you want frameworks that aren't likely to go away anytime soon look at Django and one of the frameworks in the Zope community (Grok, BFG, Zope3). Zope has a big community and have been around for more than ten years and isn't going away any time soon, and is a breeding ground for many of the new cool Python web technologies. Django is newer and did only recently come in version 1.0, but it has a very large community and is also going to stay around more or less forever.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top