Python, Django and DB2: we need your input!

This article is obsolete. Please refer to the following articles for up do date instructions: Ruby/Rails and DB2 | Python/Django and DB2. Thank you!

I may be biased by the fact that I’m part of the DB2 team, but I think that DB2 Express – C is a kick ass offering for developers who are interested in using an enterprise level database without spending a cent.

Before joining IBM, I too thought DB2 was mostly something for giant companies like Wal-Mart or for mainframe legacy databases that have held information since the seventies. Well, things change, and they change very fast and many of those assumptions are just plain myths.

DB2 Express – C was born from a few people’s desire to bring the power of one of the most advanced databases in the world to developers for free. We had to give in to some small compromises, because IBM is obviously not a non-profit company but… we actually managed to compromise in a way that won’t negatively effect developers too much (shhh, don’t tell anyone ;-)).

DB2 Express – C is entirely free and the code base is no different from the commercial version. This is a rather different approach from other vendors, whose “express” versions are often crippled by design. There is no database size limit, no limit on the number of instances or databases and no restrictions on the number of users or connections. DB2 Express – C license requires only that it is used on a Linux or Windows server, with a maximum of 4 cores (32 or 64 bit) and 4 GB of memory. That’s it. This is pretty much a generous license given that most developers, startups and even medium sized businesses won’t need anything more than 4 cores with 4 GB of RAM for their dataservers.

I think it’s a very valid offer and probably one of the best propositions available for developers. DB2 is one of the fastest databases in the world and if you outgrow these server boundaries than you are already probably making some serious money and paying for commercial licenses won’t be an issue. 🙂 There is a wealth of information to get you started and a helpful support forum.

This is all dandy and cool, but developers need good drivers and good APIs to access the database from their favorite programming language or framework. This is why there have been many efforts to support Ruby and Ruby on Rails with a native driver and a vendor supported adapter.

But hey, what about Python many people asked? Well, I was one of the first to ask ‘What about Python and Django?’ myself. My team is striving to innovate and embrace the developers’ community, therefore such ideas are immediately considered no matter what it takes. Just to give you an idea, in my team we have a guy who looks like Jimi Hendrix and happily brings his “17 MacBook Pro to work (I’m so jealous about both his Mac and the fact that he still has all his hair :-P).

Then there is the guy who’s visited hundreds of universities around the world, and has more miles under his belt than a rock star.
It’s a cool team trust me, so in this environment when we see an opportunity to make a concrete step for the community we dive right in.

For a while I’ve been pushing and promoting the idea (within IBM) of a vendor supported Python driver and Django adapter. It looks like the time has come to start considering this seriously and to allocate appropriate resources for it. And I need your help.

I need your feedback and help to collect good ideas, in order for us to create the best driver API that we can. The Python Database API Specification v2.0 – PEP 249 is our starting point, but if you have specific requirements, thoughts or good ideas, please do not hesitate to contact me at my last name or by commenting on this blog. There are no dates or estimated times as we are just in the brainstorming phase, but now is the time for you to give us your input. Take this as a friendly petition and request for feedback, and feel free to contact me even if you are just interested in seeing IBM’s official driver and adapter for Python, Django and IBM databases (DB2 LUW, IDS, etc…).

I thank you in advance and ask you to get the message out there, in the Python and Django communities.

DISCLAIMER: this post expresses my opinions and does not necessarily represent IBM’s positions, strategies or opinions in particular in regards to my colleague’s hair :).

Get more stuff like this

Subscribe to my mailing list to receive similar updates about programming.

Thank you for subscribing. Please check your email to confirm your subscription.

Something went wrong.


  1. Jonathan March 15, 2007
  2. dbt March 15, 2007
  3. Antonio Cangiano March 15, 2007
  4. Masklinn March 15, 2007
  5. anonymous March 15, 2007
  6. Kimutaku March 15, 2007
  7. Antonio Cangiano March 15, 2007
  8. Vinay Gupta March 15, 2007
  9. Antonio Cangiano March 15, 2007
  10. tonetheman March 15, 2007
  11. David Preece March 16, 2007
  12. JazzMan March 16, 2007
  13. anonymous2 March 16, 2007
  14. Ed Singleton March 16, 2007
  15. Jeff March 16, 2007
  16. Daego March 16, 2007
  17. brad clements March 16, 2007
  18. Coliform March 16, 2007
  19. Andy Dustman March 16, 2007
  20. Dave K. March 16, 2007
  21. David Rushby March 16, 2007
  22. Derek March 16, 2007
  23. Coliform March 16, 2007
  24. João Marcus March 16, 2007
  25. Kimutaku March 16, 2007
  26. A DBA March 16, 2007
  27. Dan Sickles March 17, 2007
  28. Richard March 19, 2007
  29. Dick Davies April 18, 2007
  30. Garry May 4, 2007
  31. Mateo May 6, 2007
  32. Angela May 10, 2007
  33. Claus Conrad May 29, 2007
  34. Antonio Cangiano May 29, 2007
  35. Adi Azar June 12, 2007
  36. Ruby on Rails examples June 12, 2007
  37. Adi Azar June 13, 2007