views:

1893

answers:

7

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?

+2  A: 

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.

Daniel Roseman
Thanks for sharing about IBM's driver for Django. I have spoken to one of the developers at IBM regarding a DB2 driver for SQLAlchemy and apparently, it will be done by next week. I am hoping for the best and that driver will be production ready.
cygnus atratus
A: 

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.

JohnMetta
a "kitchen sink" framework at least w.r.t. controller/view combinations (like auth, posting comments) is exactly what you would *not* want to use for a larger project. Piling up prepackaged comoponents means you'll have a chunky application where none of the components do exactly what you want or perform exactly as you need. If you really want "out of the box" there are plenty of web services that offer blogs, comments too but you don't use those either, right ? too much scotch tape, not enough honest architecture.
zzzeek
Hrm, just noticed that you can up comments, which is nice, because this deserves one. You have an excellent point.
JohnMetta
A: 

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

hcalves
A: 

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.

Lennart Regebro
Thanks so much, Lennart. I suppose I'll read up on Zope! I didn't know Django had such overwhelming support though
cygnus atratus
Yeah, the Django is strong here on Stackoverflow. :)
Lennart Regebro
+1  A: 

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.

Tom Willis
Hi Tom, thanks so much for your help. By 'enterprise-ready', I am sorry I was vacuous in not defining it well enough in my query. I am concerned about the roadmap for python (not a big issue, i guess), pylons and sqlalchemy (which i fear the userbase might not be big enough to ensure continued use)I intend to use SQLAlchemy for automating simple CRUD operations while the bulk of SQL will be in the form of stored procedures i guess. This is meant for a series of intranet apps I'm creating for a company.So future support is essential for me in deciding my platform
cygnus atratus
Fair enough, I woudn't know how to directly address concerns of longevity or stability of any given api. It probably comes down to preference. To me if I can understand the magic that's happening, than I can support it. I could never fully grok what the heck was going on in rails, and as a result I would often end up fighting the framework more than it helped me. just my .02
Tom Willis
+19  A: 

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.

Ben Bangert
Hello, Ben! I am immensely honored to hear your frank and sensible reply. You have done alot of work for the wonderful framework Pylons and I appreciate it greatly. I am currently VERY interested in Pylons but I am left very anxious about IBM's support for the DB2 driver for SQLAlchemy. It has yet to be updated to SA 0.5 from SA 0.4 when Pylons 0.97 depends on SA 0.5.I concur with your opinions about "bigger uptake" but noting that you claim that Pylons "isn't going anywhere" wouldn't u agree a bigger community will indicate more support?
cygnus atratus
Moreover, I shifted to Pylons from ROR due to a lack of support for Windows developers and the lackluster ruby-pg driver. It took up quite a lot of my time and caused me to become horribly frustrated.I have to clarify by 'enterprise ready' my main concern is reliability, support for legacy code and longevity. So far, I have been quite happy with Pylons thats why the question. But I do hope IBM will continue SA support for DB2 as well as Python.
cygnus atratus
Well, for legacy support, Pylons is currently almost 1/3rd legacy support for older versions of Pylons. We didn't "wait" for 1.0 before deciding that early adopters should have legacy support.Pylons 1.0, which is due out in the next 6 months, drops the legacy support, but will also have a Pylons 0.10 released at the same time containing deprecation warnings for a smoother upgrade to 1.0.With regards to support, you'll probably have a more difficult time getting Python DB2 support than Pylons support.
Ben Bangert
+1  A: 

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.

Jeff T
Hi Jeff thanks much for your comments. I think Pylons have potential to do alot of amazing things but however, by enterprise ready, its very very critical to have longevity. Because it takes months/years to really master a language (Python) and a framework (Pylons) and its unwise to invest the time and effort on a framework that isn't continually adding new features to stay ahead of the curve.And by enterprise ready, I'd expect extensive documentation (not source code!) to bring up internal teams up to speed on the new technology.However i agree Pylons is amazing.
cygnus atratus