Hacker News new | ask | show | jobs
by mnutt 5456 days ago
I had to google 'django magic removal branch' just because it sounded so cool:

https://code.djangoproject.com/wiki/RemovingTheMagic

I think your experience with Rails (and the community) may be a little out of date. Check out wycats' changes in Rails 3.0 to see where most of the cleanup happened. There's a lot less magic than there used to be.

As far as authentication and admin sections, I guess it just depends on your preferences for which pieces should be included in a framework and which users should have a choice over. Authentication is often app-specific enough that it's hard to drop in different solutions and have them act equivalently.

1 comments

The simplicity and plugability of django's authentication system gives you as much as you need and as much as you want, if it doesn't provide something then you can reuse it. I can't think why I'd want to "choose" between different systems that should be provided in the core functionality.

The admin is not the auth system, you are not forced to use it and in fact its disabled by default in every single django startup app. I've in the past done my own functionality pages, and would use Admin when it was most suitable.

Personally I haven't seen anything in Rails 3.0 that makes me think "ooh this is a killer feature" the only thing that rails had over Django was migrations, and South closed that hole up years ago.

I'm going to to reinvestigate Rails 3 soon, however my concerns with magic are related as much to the coding style as the overal magical structure. One of the reasons I understand Django so well is the well written code, the other being that it is clean and well designed as a system.

José Valim has written a book[1] that shows how to swap in all manner of functionality into Rails 3. It covers alternate renderers (PDF), alternate models, alternate template stores (SQL), custom template engines, using the built-in notification system, and alternate backends for I18n.

I highly recommend it.

[1] http://pragprog.com/book/jvrails/crafting-rails-applications