you know, back when I first got into Python and wrote Myghty, I got exposed to this whole "oh no theres TOO MANY WEB FRAMEWORKS" thing that was going on, which I suppose is still going on, and my casual, largely uninformed impression of it was that it seemed to be a notion spearheaded primarily by young, possibly novice developers who were having a hard time making a decision on how to build their first dynamic website. My opinion at that time, which hasnt changed much, is that if the Python community made this across-the-board decision to "dumb down" the entire community's offering to one set of lowest common denominator tools, just to please people who either had shallow experience and/or were too lazy to look into things deeply and decide what worked best for them, that would be very unfortunate. That mentality is exactly the reason (well one of several) that I had no interest whatsoever in the Ruby community. I had a lot of ideas which I wanted to see happen, and it was obvious that if I had chosen Ruby, those ideas would have no audience whatsoever; its a one-horse town.

With regards to SQLObject, I definitely looked at it and came away with being very impressed by its operator-overloaded idea, and also a strong sense that the notions I had for an ORM were philosophically completely different, namely in the areas of: an ORM and SQL construction tool that would work with databases of any configuration, rather than the ORM dictating the specifics of the schemas that would function; having an ORM that mapped to relational concepts and rows instead of tables, and firmly decoupled domain objects from their persistence implementation, rather than conflating them for convenience; supporting and embracing the individual abilities of databases instead of trying to distill them down to one single "virtual database"; and a prioritization of patterns that are acceptible to the typical DBA: aggregation and minimization of INSERT/UPDATE operations, fully and explicitly transactionalized behavior, full use of bind parameters, as much support for joins/ unions/eager loads as possible, allowing custom SQL to be injected anywhere, common patterns like composite primary keys and adjacency list structures easily supported, and a modular design allowing important algorithms like connection pooling to be inspected and/or swapped out.

I also could see that SQLObject had a huge following, a whole lot of enthusiasm, and I thought that was a great thing; I can write my ORM, get my own crowd of users (since I knew they were out there), and then Python can have two (or more, I hear PyDO is great too) world- class ORM's, appealing to different philosophies and crowds, possibly engaged in a healthy competition that compelled each one to remain vital. I continue to be confused by this notion, even though its a central Python slogan, that having a little bit of choice is a bad thing. Also, my target audience is seasoned professionals or those looking to be such, who need tools that will grow with their own needs and never be unexpectedly let down by some architectural shortcoming, rather than those who seek something drop-dead simple and quick at the expense of scalability and flexibility which they believe they'll never need (or are unaware they will need). I build my stuff in the hopes that an Ebay, Craigslist, or del.icio.us will use my tools someday; even though Python is not so prominent in that arena, I have hopes that it can become so. This audience is definitely not the only audience in the Python community, and it seems natural that different audiences may require slightly different toolsets.

While I am not sure of the specific timing, from my perspective it appeared that Ian's announcement of SQLApi and later SQLObject2, which promised many of the features SQLAlchemy already had and which formerly on the SO site had said would never be supported (the comment about, "will probably never support composite primary keys" and "you dont need to use LEFT OUTER JOIN" are what I am referring to), was completely after I had already developed a large chunk of SQLAlchemy and showed it around to a few people, im pretty sure including Ian on the IRC channel. If SA was a catalyst in Ian's decision to develop SO2, I'd say that's evidence that SA already had a massively positive effect on the SQLObject community, and I look forward to the overall improvement of toolset availability within the Python domain.

- mike

On Mar 18, 2006, at 12:35 PM, Alan Franzoni wrote:

Hello! I hope this message may help. I'm an ex-SQLObject user and now
SQLAlchemy user. I just read on the SO group that sqlobject 0.x is being
dropped and a probably backwards incompatible SQLObject 2 is being
developed.

I think SQLAlchemy is more complex but more coherent, and the recent
ActiveMapper function allows any easy, more SQLObject-like database schema
definition, and in fact I think it was created after SO behaviour.

Now, my 2c: do we really need *two* ORMs in the Python community? I think it's not easy to create an ORM, and dividing two skilled programmers into two different projects will probably mean that development will be slower. Multiple unfinished project on the same subject and zero stable-and- usable software in the same category is already a common issue in the open source
community, we should not make it worse.

There're various SO2 features I'd like to see in SA, mostly related with
SQLobject ease-of-use - in SA everything can be done by creating an
appropriate object, but SQLObject often does it 'out of the box' (e.g.
column overrides).

It would be nice to have a kind of SQLObject class to inherit from in
SQLAlchemy, or something similar. Haven't you (Ian and Micheal) ever
considered a merge?

Please note: I don't want to give unwanted advice. I'm not a skilled
programmer, but I just think there're toooo many 'in progress' software doing the very same thing in the open source world, and that wastes a lot
of programming time, and often it's not the worse software to reach an
'unmantained' state in the end.

Bye!

--
Alan Franzoni <[EMAIL PROTECTED]>
-
Togli .xyz dalla mia email per contattarmi.
Rremove .xyz from my address in order to contact me.
-
GPG Key Fingerprint:
5C77 9DC3 BD5B 3A28 E7BC 921A 0255 42AA FE06 8F3E



-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel? cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Sqlalchemy-users mailing list
Sqlalchemy-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users



-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Sqlalchemy-users mailing list
Sqlalchemy-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users

Reply via email to