Panel: Object Relational Mappers: Philosophies and Design Decisions

Jacob Kaplan-Moss

A talk given at PyCon 2009 on March 28th, 2009.

Description:

This panel will look at the technical and philosophical decisions that went into the design of each ORM. It will try to look at what were the fundamental design decisions that went into the ORM, and how these were affected by specific environments(non-relations DBs, web, etc.).

Most importantly, it will compare-contrast the approaches taken by the ORMS, for example comparing the data-mapper paradigm used by SQLAlchemy to the active-record pattern used by others.

It will NOT be a which ORM is the best, or which ORM should I use panel (although a comparison of what domain an ORM is strongest and weakest in, and why may be approrpiate).

Django, SQL Alchemy, SQLObject, and Google App Engine will be represented. Each of these ORMs will try to provide a different perspective. Django was developed specifically in the context of web applications, SQL Alchemy uses the data-mapper patter(as opposed to the active record pattern), SQLObject is one of the older current Python ORMs and provides a perspective of how ORMs have changed through this time, and Google App Engine uses a non-relational database.