[storm] ORM choice discussion at work

Brad Allen ballen at zeomega.com
Sat Jul 5 17:54:58 BST 2008


Stormers,

The choice between Storm and SQLAlchemy has just become a major topic at 
my place of work. I don't want to start a flame war on this list, so if 
you are interested in this discussion please respond to me off-list by 
mailing me directly.

We are using Storm in a pilot project, using the MS SQL backend we 
created; it is branched at 
<https://code.launchpad.net/~zeomega/storm/storm_ms_sql_2005>. It has 
specific support for mxODBC but is designed with a separate module to 
allow registering different connectors such as pyodbc, etc. ZeOmega has 
released it to the community under the same license as Storm.

So far, Storm with the custom backend is working fine for our project, 
though it still doesn't pass all the Storm unit tests; I still have some 
work to do on unicode support and correcting some of the test setups. 
That's why I haven't yet submitted the branch for review to be added to 
Storm trunk.

However, we don't need unicode support for our application (yet!) and 
the priority has been supporting our existing (non unicode) MS SQL 2005 
database.

As our pilot project has gotten underway, with additional developers 
learning to use Storm, our company leadership has started a discussion 
with the premise that we should standardize on a single ORM--either 
Storm or SQLAlchemy. They don't want to spend company training and 
development resources to support different ORMs for different projects.

We have about 80 Python/Zope/Plone developers, with three main platforms 
for application development:

* Zope 2 (our main product development) uses MS SQL 2005 for db layer
* Plone (for numerous consulting jobs) usually uses Postgres for db layer
* plain Python libraries/scripts

This last is the area where we've started using Storm in a pilot 
project; this project targets the same database main Zope 2 app. One of 
our clients has lots of external integration points and we have built a 
set of Python libraries to support external integration.

Two of those Python packages now have Storm dependencies, and are 
beginning to show why an ORM approach results in very manageable code. 
The next step will be to consider how we can replace the zsql approach 
used in our Zope 2 and Plone applications.

Naturally our company leadership is now questioning the choice of Storm, 
given that it is not as mature as SQLAlchemy.  In particular, they want 
to know if it will be a good fit for Plone, and if anyone is willing to 
do work to create a Storm storage for "Plone AT" (ATypes?). I don't know 
much about Plone, but if anyone is doing any Plone/Storm work please let 
me know.

Any insights or contributions to this discussion would be appreciated, 
and we are open to hiring consultants as well.

Thanks!

-- 
ZeOmega
Open Minds' Open Solutions
2591 Dallas Parkway #408
Frisco TX, 75034
http://www.zeomega.com

Brad Allen
214-618-9880 (ext. 8006)





More information about the storm mailing list