[Nitro] OG vs some other ORM packages

Mark Van De Vyver mvyver at gmail.com
Sun Aug 26 02:41:55 EDT 2007


Hi,
I'd appreciate any comments on my understanding of the approaches used
to implement ORM, and whether my understanding of which Ruby packages
do what is correct.  Also, please shout if I've missed some relevant
package(s).

What would be really interesting is for anyone familiar enough with a
package to say: "Their approach to XYZ is great/bad".
For example:
I think the OG approach of using graph theoretic concepts to 'map'
Ruby objects to dbs is 'great' and offers enormous amounts of head
room, this might be enhanced by exploiting the Gratr package.... ;)

I wanted to see what approaches different packages took and see if any
had any really 'neat'
ideas.  In some cases I've shown in parentheses somethings I found
interesting (+) from a very superficial look at the packages.

The list of Ruby packages I looked at came from the links below.  Not
all of these packages are listed by me, so I may have missed some
important one(s).

http://rubyforge.org/softwaremap/trove_list.php?form_cat=66&page=5
http://raa.ruby-lang.org/cat.rhtml?category_major=Library;category_minor=Database

It seems that two ORM approaches are to:
 - "Wrap" Ruby objects around existing database elements
 - "Map" Ruby objects to databases elements.

Often it seems that 'Map' is the term used to describe both approaches.  Anyway:

Wrapper:
=======
ActiveRecord
Momomoto (PostgreSQL, +InformationSchema, +stored procedures)
Kansas (DBI)
sequel

Mapper:
=======
Lafcadio
Vapor (postgresql only)
ObjectDB (dbi)
odba (dbi)
sqlyzer (dbi)
sop (dbi)

Mapper and wrapper:
=================
OG
Lafcadio (?)

Misc/Uncertain:
=============
tapkit
Merbs' DataMapper
sqldsl
Ruby/OpenBase
dbdiff
Enum Column Plugin For Rails
sql-serialize
ActiveSearch
Rural
ActiveRecord::Extensions
SqlStatement
Visualize Models


Regards
Mark


More information about the Nitro-general mailing list