Hi Jeff, I defected to Django from Rails and so far I'm loving it.
But it really depends on what you need to do. If you're creating a single monolithic application, Rails is pretty sweet. I did a giant invoicing/accounting application for an insurance company in Rails. It handles tens of thousand of members and processes over a million dollars in transactions per month through an excruciatingly convoluted billing process. In my opinion, Rails is perfect for this kind of thing. I'm sure I could have accomplished the same thing with Django, but Rails just feels a little better geared to this type of thing -- single, large applications. The built-in ajaxy stuff came in very handy too. And the Ruby syntax is a real pleasure to work with (although I'm definitely warming to Python). But here's where Rails falls down in my opinion, and the reason why I switched: (1) Rails apps aren't portable. At all. Not even a little. Personally, I don't spend most of my time building billing apps for insurance co's. I mostly build web sites with little apps in them such as a photo gallery, a blog, a shopping cart. With Django you can build an app, put it on the server somewhere, and for as many sites (projects) as you like you can pull in that app, skin it and use it. With Rails, there's no concept of 'apps' which can be imported into 'projects'. There's just this one big monolithic app which *is* your project. For website development, this sucks. (2) Rails apps are a little flaky to deploy. I hear Apache2/Mongrel is well on the way to solving this. But the standard method of deploying Rails apps has been using Lighttpd with FastCGI proxied through Apache. Kind of convoluted and sometimes the FastCGI processes go nuts and eat up all your resources until you hunt down and kill each process. Typical Django deployment uses Apache/ mod_python. It's fast and stable and easy to deploy. (3) Documentation!!! I'm surprised that you mentioned that as a benefit of Rails. That's one of the very few things that I found downright annoying about Rails. The docs just aren't there. Sure you can google up some tutorials or buy the Agile book (which is excellent by the way). But the actual documentation on the Rails site is horrible. Mostly user submitted wiki stuff -- some of it is outdated or just wrong, and there are gaping holes too. The Django docs are one of things that drew me in right away. Shopping for an alternative to Rails, when I saw the documentation section of the Django site, it was like a breath of fresh air. Ahhhh.... now *this* is what documentation should be :-) Now the flip-side: There are a couple things I've found in Django that are not so great. (1) The admin section is assumed. The admin section is unbelievably cool when it meets 100% of your needs. But if you decide for whatever reason that you wanna do your own custom admin section, prepare to endure some funkiness. For example, basic authentication. You can use the bundled auth system, but then you're required to use hard-coded urls for your login/logout pages. Don't like those urls? Well then, you're gonna have to write you own authentication system from scratch. I've found this to be the case for a lot of stuff. Django gives you some stuff for free, but it's not as flexible as I'd hoped. And writing your own from scratch feels like more work to me than it did in Rails (for example the auth system). (2) No ajaxy stuff. There's nothing stopping you from using prototype or dojo or whatever. But I have to admit that I do miss the Rails way of doing it where using ajax isn't really any harder than not using it. One final point about fit and finish: Probably the biggest surprise for me coming to Django is how well-polished the framework is. Rails and Django are really equals in this department I think. To be honest, I had expected to find Django a little undercooked in some areas, but it's not the case at all. It's very solid and well- documented and it works very very well. The community is great too. Django is very much on par with Rails in terms of polish. Okay that's it -- back to work. Hope this helps somewhat :-) Sean On Sep 12, 2006, at 8:41 AM, Jeff Rodenburg wrote: > I'm trying to get some education on rather quick order and was > looking for feedback from the Django side of the equation. > > I've seen a bit of comparison in public forums of Rails and > Django. I'm trying to eval these things from a higher level, or > one might call "management" perspective. (No, I'm not management; > I just work for them. ;-) ) > > On observation, the frameworks seem rather similar with subtle but > key differences, i.e. interpretation of the MVC terminology and > structure. On a quick-read basis, Rails seems to have an advantage > of a lot of documentation, more publicity (the Hanson kid sure > knows how to work a crowd) and a nice IDE in RadRails. > > My question: how would you (you = someone with solid Django > background) characterize similarities and differences with Rails? > > cheers, > jeff r. > > > :::: DataFly.Net :::: Complete Web Services http://www.datafly.net --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/django-users -~----------~----~----~----~------~----~------~--~---