Rails 3.0.3 out - Faster Active Record plus fixes
weblog.rubyonrails.org
weblog.rubyonrails.org
I've noticed a dearth of Rails3 performance discussion in general (usually there's a ton of articles on any Rails-related topic).
i think AR went Arel, because AR's syntax and internals sucked badly, yet admitting that by putting effort in DM would badly hurt the ego of one or more AR devs.
sidenote1: if it wasn't for the humble merb devs, rails3 would never be what it is today. these merb guys gave up a little of the name and fame of their brilliant project so the community would benefit from not being split. DHH abused that humbleness by not even mentioning them (the project nor the devs) in the announcement of rails3! that's just plain wrong...
sidenote2: DM is great stuff -- still waiting for the version that allows NoSQL backends as well though.
sidenote3: i'm ex-merb user, now rails3, yet never touchin' no AR.
Introducing Arel, and improving ActiveRecord in general, serve to bolster this attitude and approach. That is, to improve the state of the defaults, provide an easy path for uptake, whilst now offering the alternatives cleaner means of tying into the Rails system.
To address your side nodes...
#1. A hat tip would have been nice, but I don't think too many folks were truly upset in the long run.
#2. Meh. The only thing I really miss from DM is the declaration of attributes. Arel is pretty tight. Check out Mongoid. It's pretty slick.
#3. Ex-Merb user too. AR does the trick sometimes, but I'm happy to have the freedom to use Mongoid, Sequel, etc.
2. You should be able to do that in AR by adding to the class-level #columns collection yourself. I had a plugin for this years ago for validating contact models. I'd imagine it's even easier in 3.0 since ActiveModel requires attributes to be set.
3. I really like the work that Josh and the rest put into ActiveModel. It happened to materialize around the time various alternate datastores like Mongo started getting popular.
FWIW, I used both Sequel and DataMapper in various internal projects. I didn't like either for various reasons. Different strokes...
O/R Mappers are difficult. The more ambitious, the more difficult, and DM is very ambitious. ;-)
I can say it had absolutely nothing to do with ego. There was a actually a point ARel was seriously considered as the basis for the DM query API.