[orm-devel] post 1.0 and metaclasses

Diedrich Vorberg diedrich at tux4web.de
Wed Mar 31 11:22:19 CEST 2004


Hi Charles,

>I'm curious to hear what benefit you see in metaclasses vs the current
>approach.
The most obvious benefit would be inheritance: your dbclasses could
subclass each other just like your tables in pgsql.

>It seems to me the added complexity detracts from the idea of a
>thin membrane.
Actually, orm's four-thousand lines are mind-boggllingly complicated
anyway ;-) The point is, orm's "datatypes" happen to mirror Python's
property classes. If I would have had the understanding of Python that
I have now I would have implemented orm with metaclasses. Using
metaclasses I can make datatype inherit from property. This will make
orm *much* more "pythonesque" i.e. closer to the intentions and style
of language and runtime-system.

>It also raises the barrier of entry for others to contribute
>to the code.
I can see that to understand metaclasses is difficult. To be honest, I
only understood them day before yesturday and I guess, without working
on orm I would not have understood them at all. But: In a way orm uses
a lot of tricks to "emulate" metaclasses and properties. Using the
actual technique provided by the language will make orm easier to
understand and maintain. 

>When you add this with some of the limitations that (i think) are
>imposed by metaclasses (i.e. globally unique class names) I'm not
>sure if there is a compelling case.  To me, this was one of the main
>distinguishing *features* of Object Membrane from SQLObject.
I'm not sure if globally unique class names is a limitation of
metaclasses or a limitation of SQLObject. I will have to
investigate... 

>Maybe features like automatic schema generation, or schema to class
>translators would attract more users instead?  I'm interested to hear
>more thoughts on the topic if anyone has them.
Me too... 

>http://mail.python.org/pipermail/python-list/2003-May/161119.html
Ah... this is my first look at SQLObject for a long time... the syntax
I have in mind for orm is much the same as SQLObject's. I guess I'll
need to have a deeper look at it. 

Diedrich

-- 
Diedrich Vorberg <diedrich at tux4web.de>      .---.   /             \
http://tux4web.de Tel: 02302 425269        /     \ ((__-^^-,-^^-__))
                                           \.O-O./  `-_---' `---_-'
"Unix is simple, but it takes a genius     /`\_/`\   `--|o` 'o|--'
to understand the simplicity."            //  _  \\     \  `  /
                      - Dennis Ritchie   | \     )|_     ): :(
                                        /`\_`>  <_/ \    :o_o:
     Associate Member of the FSF #1245  \__/'---'\__/     "-"



More information about the orm-devel mailing list