I’d like to hear from those of you who have switched from Django to
Rails.
I understand the appeal of Django (more straightforward to newbies and
less
chance of breakages during upgrades), but what makes you like Rails
better
than Django?
I learned Drupal before learning Rails. A Drupal newbie can get up to
speed much faster than a Rails newbie, but Rails has so many
capabilities
that Drupal doesn’t have. Rails offers dynamic capability, automated
testing, and the option of using version control (which makes it much
easier to back up a site).
Personally, I went from rails to django to rails to django to rails
again.
I think the main reason I like rails is ruby.
Once I understood the rails system and ecosystem, I chose it to be my
default option for new apps.
One thing that the rails community tends to do is living on the edge.
For
me that didn’t work well. I do care about stability and well tested
software. Now I don’t mind running on an older rails release as long as
it’s doing what I want in a way that I like.
I also like how rails emphasises on testing and the testing frameworks
that
are available to it. Testing is not a priority for me, but I do it when
I
have the time because I know it will save me a lot of trouble
eventually.
“less chance of breakages during upgrades”
This is one thing I admire that django devs strive to achieve. However,
lately I’m finding rails to be more conservative with updates and cares
more about backwards compatibility which I like.
The most effective thing that made me really like rails was that I
taught
myself not to care about running the latest version of rails. It’s ok to
run an old-yet-supported version, which made my life so much easier. All
gems run great, the version of rails is well tested and patched over and
over again, and the limitations and bugs are usually known and
documented
online. This is why I think I will not move to rails 4.0 until 4.1 is
released, and then move to 4.1 when 4.2 is released and so on.
Rails is a huge framework that does a lot of things and it does take
time
to learn not-so-obvious features and ways that rails works with. But
once
you get there, rails is a really REALLY hard-to-beat framework, IMHO.
PS. One thing that I love about django is how it integrates well with
the
database and actually uses its features like foreign keys and unique
column
values, where in rails these things are handled by rails itself and not
the
database (by default).
On Sunday, May 12, 2013 5:12:11 AM UTC+3, Jason H., Android developer
Jason H., Android developer wrote in post #1108629:
I learned Drupal before learning Rails. A Drupal newbie can get up to
speed much faster than a Rails newbie, but Rails has so many
capabilities
that Drupal doesn’t have. Rails offers dynamic capability, automated
testing, and the option of using version control (which makes it much
easier to back up a site).
I have not worked with either Django or Drupal, but have worked with a
good number of other software development frameworks. I simply wanted to
add that comparing Drupal to Rails is irrelevant. They are not the same
thing. Rails is a general purpose web development framework, whereas
Drupal is a Content Management System (CMS). While it is possible to
extend CMS systems with extension code that is still not a fair
comparison to a general purpose development kit like Rails.
This is akin to the the comparisons between Rails and PHP that you often
see. This is also not a fair comparison. PHP is programming language
where Rails is a development framework that happens to be written in
Ruby. It would be fair to compare PHP with Ruby.
Modern software is generally built in layers. The basic layers being the
underlying programming language (e.g. Ruby, PHP, Python), the
development framework (e.g. Rails, Django, CakePHP), then what I’ll call
the application layer.
The application layer could be your application, as is likely the case
for a Rails application, or it could be a higher level abstraction like
a CMS (Drupal, Radiant CMS, etc.). A CMS might then allow for an even
higher extension or plugin layer. Every layer above the foundational
language is optional. For example Drupal may sit directly on top of PHP,
but that doesn’t put it in the same category as something like Rails or
Django.