Here's what you get out of the box with Rails:
1) Database schema management via Rails migrations which work great with mature RBMSs like Postgres and MySQL.
2) A solid ORM (ActiveRecord) which makes CRUD super easy and intuitive.
3) An active community with lots of open source libraries (gem) to do just about anything you want.
4) Highly productive ways to work with frontend (CoffeeScript) and backend (routing, controllers, active_record, etc).
5) Great documentation and ecosystem around it.
Contrast this with Go, Node, and other OSS ecosystems and you're often left to make a lot of the decisions on your own with immature libraries. Often to get to the same place, you'll be inventing a lot of your own infrastructure.
Node is probably the closest to approaching a "batteries included" status with the MEAN stack, but it's not quite there yet.
You can certainly get all of what Rails comes with out of the box on any stack, but unless you know it really well, there's a lot of decisions to be made. With a startup, the kind of analysis paralysis that often comes with technology decisions can really kill an idea in its early stages.
Python/Django had a very small community in my local area (Dallas, TX) while the local Rubyists were more plentiful, not to mention very welcoming. I got some early mentors that helped me get going and that got me to stick it out with Rails.
These days, I see more similarities than differences between Python and Ruby. It's like choosing between Vim and Emacs. Both sides have their value, but the bigger difference really exists between a text editor and an IDE like Eclipse or Visual Studio.
My advice is to try both, and see which one appeals to you more. Focus on it for a few months and find mentors to help you through it.
The harder choice would be to pick something like Node.js which is just starting to hit its stride, or Golang which is really just starting to pick up. Keep in mind, it's quite common for startups using Django or Rails to augment their stack with either Node.js or Go to solve certain problems that don't fit nicely into either Ruby or Python.
And Django's architecture is usually simple and easy to understand as well -- e.g. the official tutorials have you do a lot of things "by hand" before showing you parts of the Django standard library that automate them.
But I personally didn't find Ruby hard to learn, and in fact I found it pretty intuitive.
The metaprogramming in Ruby allows for the creation of intuitive DSLs and APIs that are more difficult to achieve in other languages. While this can lead to a lot of the "Rails magic" that is often used without understanding, it can be highly productive for folks that really know it.
Beyond that, I honestly don't think there's much difference between the two. Certainly not enough of a difference to agonize over the choice.
The choice worth agonizing over more is whether you want a full framework or if you want to cobble together a toolkit of libraries to build your app. This choice exists regardless of language. I know many Python devs that won't touch Django and prefer Flask for everything.
This is the kind of stuff that used to start flamewars on Usenet ha. I respect your personal opinion, but just to put a different opinion (mine) out there: I find Python very opinionated and feels kind of "old" (like, when was the last time an OO language required you to provide a reference to the object as a parameter within the methods?).
Also in my opinion, even now in 2014 it is still not clear what version of Python should people use 2.x or 3?, given that there is still a bunch of code out there that is not compatible with 3 (granted, there are tools to convert that code, but that makes just an additional step to do compared to just using Ruby).
All in all, these are just opinions. Both of the stands are very respectable, but I wanted to put this out to compare with your opinion. I don't use Rails, even though I use ruby a lot, so on those frameworks I cannot comment.
But the stats show the giant, kitchensink frameworks are pretty even in measurable terms, but Rails had about 5x individual committers.
For greenfield apps, node has the advantage of being mostly the same language back- (node) and front-end (browser). Hence why Asana and others use it.
Python is more popular than Ruby, but they're roughly equivalent sans religious wars.
The other thing is that Rails is a mature, well-defined architecture with tons and tons of gems.
The bower asset packages can be used straight via
# Gemfile
source 'https://rails-assets.org'
It's also not hard to get gulp and phantomjs setup.General advice though...
Build outside-in. (Frontend first, backend later)
Building inside-out can lead to wasting time building things that just aren't needed.
Building inside-out can lead to wasting time building things that just aren't needed."
I will keep it in mind.
Having said that, please note that ruby on rails is one of the slowest performing frameworks:
http://www.techempower.com/benchmarks/#section=data-r8&hw=i7...
Here's a recent interview with Matz from RubyConf13 (Miami Nov 2013) http://multifaceted.io/2013/rubyconf-13-a-chat-with-matz/ that may be of interest.
It's about making developers happy…
I'm not a rails dev but these seem like desirable properties, especially if you are working with limited resources to get a prototype or mvp going asap.
http://www.quora.com/Ruby-on-Rails-web-framework/Why-do-so-m...
P.S. You need to sign-in with your Google or Facebook account to view the page.
http://www.quora.com/Ruby-on-Rails-web-framework/Why-do-so-m...
I must say this made me laugh. Is the tech scene getting too stupid?
And, the vast majority of interview processes are rarely measurably accurate at preventing false positives AND false negatives, most tend to sacrifice the later for preventing the former.
I'd be more impressed if someone ran PC-BSD zfs on a homemade laptop.
(Disclaimer: written on a hackable non-Retina MBP, not that it matters. 2 SSDs + 16 GiB in 13")
The runtime is also extremely bloated. To run one fairly simple web application with a handful of users, Rails uses well over 500 MB. I have no idea what it could possibly be doing with that much memory -- is it trying to make a separate object for every pixel? Startup for Ruby apps often takes over a minute.
Ruby is Rails. It's hard to find information about using Ruby for non-Rails projects. So as a beginner, not only do you have Ruby's weirdness to deal with, you're often fighting the number of moving parts in a modern web application.
Also, "magic." I haven't used Rails enough to know about this, but I hear "magic" is common, e.g. (I've heard) Rake uses some horrible hack to monkey patch the lexer or somesuch so it can have its own syntax. This kind of thing leads to code that's even harder to understand because you now have non-local dependencies. To be fair, Python also allows monkey patching, but also has a strong "don't-do-that" cultural norm.
http://www.youtube.com/watch?v=2Ex8EEv-WPs
http://www.youtube.com/watch?v=uUNdKVG2W-8
A typical Rails instance will use 100 - 150mb, and does not take a minute to start up. Have you actually used Rails? I have several large projects and none have ever taken that long to startup.
I use Ruby for non Rails projects all the time and had no issue finding how to include Active Record and Action Mailer into a Ruby CLI application.