Hacker Newsnew | past | comments | ask | show | jobs | submit | taw's commentslogin

I'd love to see it on Reddit too. Not very difficult to implement with socialhistory.js (http://azarask.in/blog/post/socialhistoryjs/)


MB/MBP runs TextMate, ThinkPad does not. That's the main difference.


Main differences:

Django doesn't have good support for testing. Rails does.

Django doesn't allow clean separation between business logic and presentation logic, forcing both into its "views". Rails does.

Django doesn't have migration and deployment system. Rails does.

Rails is stable 2.0. With Django you have to use SVN+QuerySetRefactor+NewFormsAdmin+YourOwnHacks branch to get anything done. It's not documented anywhere (and not using svn+qsr+nfa+yoh is highly discouraged by django devs).

For me Python vs Ruby was really a tiny issue compared to these four. I like Ruby marginally more but Python was never painful to me, Django is.


Huh?

"Django doesn't have good support for testing. Rails does."

You use the same standard doctest & unittest framework that any Python app would. Django even provides built-in support for dedicated test databases (autogenerated, and auto-cleaned-up after a test run) and a simulated web browser. Starting a Django project creates a dedicated 'test' directory that the Django testrunner looks in for test discovery. What more are you looking for?

http://www.djangoproject.com/documentation/testing/

"Django doesn't allow clean separation between business logic and presentation logic, forcing both into its "views". Rails does."

If you're doing it right, you should never be putting business logic into views. It should go in your model classes, as instance methods (for more global functionality, you can define a custom Manager and put your methods there). Django models are more than just dumb containers for database fields: you can add whatever intelligence you want to them.

"Django doesn't have migration and deployment system. Rails does."

I'll grant you that. There've been a bunch of 3rd-party efforts and some interest within the core Django team, but it's still nowhere near as mature as Rails Migrations & Capistrano.

http://code.djangoproject.com/wiki/SchemaEvolution

"Rails is stable 2.0. With Django you have to use SVN+QuerySetRefactor+NewFormsAdmin+YourOwnHacks branch to get anything done."

QuerySetRefactor was merged on Apr 26.

http://code.djangoproject.com/wiki/QuerysetRefactorBranch

I've heard NewformsAdmin is supposed to be merged soon (before 1.0) though I don't know of a target date.

This is unfortunately one of the problems with using pre-1.0 software, and if it's important that your software doesn't change, Django may not be for you. I've had very good luck simply avoiding the functionality that's under heavy development though, and the Django devs are very good at specifying what that is. I don't need the customizability of NewFormsAdmin, and QuerySetRefactor was largely an extension to existing methods.


> Django doesn't allow clean separation between business logic and presentation logic, forcing both into its "views". Rails does.

Django isn't a traditional "MVC," so "views" in Django have a different meaning. In all reality a Django "view" is the "C" in "MVC," and the template is the "V." I'm afraid I fail to see that point.

I also fail to see your point about SVN+QuerySetRefactor... as I've never used either branch and have gotten everything done that I've needed to. There will come a time when that stuff gets merged back into trunk and I'll have to do some conversion, but traditionally it has been very minimal (see: old school MagicRemovalBranch).


Please do a similar comparison between Pylons and RoR. And you will see the light. :)


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: