Popular things in culture sure do take the brunt of distain for nah sayers. In the last six months it seems like the number of tweets and conversations about Ruby on Rails downfalls for outweigh the benefits. My co-worker at FanChatter has indicated the framework may only good for prototyping – then why not use Sinatra. These are the common arguments:
– No Documentation
– Too Slow/impossible to scale
– Hard to get started
People who make these arguments are either new to web development (which they would have the same complaint with anything), comfortable using a different framework (Django, Zend, .NET), or build projects with 10 million users in mind when realistically they’ll have thousands.
Rails is hard to learn. Nothing in the software industry stops or waits for you to catch up, and if you are serious about adopting a framework into your development you’ll need to make a commitment to your craft. People do complain that they have to buy too many books to get documentation, but I argue the basics are available for free, and If you can understand a solution in Python or PHP you can figure it out in ROR. The principles are classic to general computer science.
Nobody likes to write code twice, especially me, but are you going to invest all of your time creating applications that are hard to get to market, hard to maintain, and hard to change when your user base is small? One of my first startups created an application that was ready to scale on day one, but we learned that our users, company goals, and our product needed to be vastly different to succeed. Building with scalability in mind is very important, but Rails has always provided an easy way adapt to a market and make drastic, or no-so-drastic, changes rapidly. The Rails framework, and newer versions of Ruby, are malleable and fast enough that well refined code can support a very large user base.
Learning to use Rails effectively takes some Googling, requires a solid understanding of Ruby, and a commitment to learning and adding to the knowledge base of the framework. If you develop with these thoughts in mind the tools you will gain can solve many profitable challenges.