Drupal in Python

A little birdie let me know that there are a group of folks that are going to take a run at using the Drupal project as a template to re-work the same system in Python.

Do you have thoughts on what you would do differently in Python? Are there specific language features that would do interesting things? Any ideas on Drupal in Python (DIP?), please leave a reference in the comments.

In kicking around this idea the other day, I was thinking about if there is a way to bridge to PHP from Python. That is, could you clone the Drupal APIs and then run a PHP-based (native) Drupal module in a Python framework?

Note: the group is actually private, and doesn't want any publicity at this point. I'm hoping to use this blog post to draw some attention to different concepts, without flooding them with people.

Update: this is a beginner project, so think of this more as exploratory coding than a hard core undertaking. *However* -- I think this will kick off some interesting discussion: I encourage people to do some research and tag stuff with "Drupal in Python" to keep the discussion going.

Comments

Drupy does in fact Exist

Have a look at the Drupy project which can be found here: http://drupy.net . We have been working hard to get a working release. It wont be long until we have something. Come by the IRC chan and say hi sometime.

drupy lives!

yup

the problem with python is

the problem with python is still the integration (or lack of) with apache

 

you end up in plone/zope land

 

the concept of drupal as python is great but there are a number of frameworks already doing this that probably do it better using correct python-OO friendly methods

 

zope

plone

django

 

Interesting

Of those three....only plone is an actual CMS out of the box. And it sits on top of Zope, so you have to write in Zope to further extend it.

Basing a "Drupal clone" on Django or Turbogears might make sense.

I agree with other comments in the thread that the Drupal community is probably the hardest to replicate.

Python

Personally I would love to see a Drupal like CMS written in Python - especially if it had a community like Drupals. Replicating Drupals community is a bigger harder job than replicating Drupals design though. I'm not a Python expert by any means, but I have played around with Turbogears a little bit. Although Rails is more mature with a better 3rd party ecosystem and has far more momentum, IMO I think if Turbogears/Pylons can attract a bigger development community they could possibly produce a better platform.

Things about where Python is heading that I like:

  • The fact that for the most part, Python web platforms are starting to converge rather than diverge. eg Turbogears moving to a layer above Pylons, and even Zope is starting become more interoperable with other Python platforms.
  • WSGI/Paste and pluggable webapps etc. Being able to one day plug together applications written on different Python web platforms.
  • SQLAlchemy sounds like it will be (or already is) a really cool ORM.
  • It seems like Rails has given the Python web development community a kick up the butt, and they are now getting their act together in terms of interoperability and compatibility, and starting to develop cool ideas again.

Things I liked about Turbogears that could be useful in a Drupal like CMS:

  • Using decorators to expose templates and wrap stuff with validators.
  • Widgets (although Drupals design might make them a little pointless)

I'm sure I'll think of some more stuff later :)

 

--
Cheers
Anton

Doesn't make much sense

Drupal in Python? Why? Doesn't make much sense.

If someone likes Drupal and would like to have a similar CMS on Python, well, that's a very nice job. Go on and study Drupal deeply so that you can assimilate the great ideas. And go further, of course.

But... replicate Drupal entirely in another platform? (by the way, a less popular one) Should Drupal deficiencies and mistakes be replicated too?

Uhm, really? 

Think of it as a design challenge

I think it's an interesting design challenge. It forces you think about why certain choices were made in one language, and then apply that in a new language. What you end up with may very well be something completely different from Drupal indeed.

Also, I don't think we should start arguing language popularity :P Python has some very interesting features, and I think you can definitely say it's a more "elegant" language.