6 ms·
It's because Rails is essentially a "batteries included" full stack framework which helps a startup focus on building a business and not on building technology
by hkarthik 13y ago
It's because Rails is essentially a "batteries included" full stack framework which helps a startup focus on building a business and not on building technology infrastructure. Outside of Rails and Django, you're left to make a lot of decisions to get the same level of functionality before you can start building even an MVP.
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.
- alouanchi 13y agoThanks for the reply. Do you have some feedback from your own experience with it and/or with another framework, says Django?
- hkarthik 13y agoI used to write .NET for a living and when I started working with my own ideas for a startup, I looked at both Django and Rails. 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.
- csense 13y agoWhat does Rails do that Django doesn't? It seems like Python language is much easier to learn, with very clean syntax. 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.
- hkarthik 13y agoI really can't speak to this as I don't really know Django. 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.
- xtracto 13y ago> It seems like Python language is much easier to learn, with very clean syntax. 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.