(related: Language vs. Framework, Hosting Explained: What is Shared vs. VPS vs. Dedicated)
Intro
At Parker Smith we build a lot of web applications and web sites, and in doing that we create 90% of those web projects using a software development framework called Ruby On Rails. I thought I'd take a minute to explain exactly what that is and why we work with it.
Basics
Ruby on Rails is a "full stack web development framework", this means that it was specifically created for developing web projects and has many of the common tasks required for creating a web application already built in. Additionally the core programming language, Ruby, is very easy to work with, so the end result is that a web application can be developed much faster, anywhere from 3-5x faster depending on the web development language or framework your comparing it to. This translates into a lower cost of development when building a project with Rails.
Open Source
The Rails framework is open source and free, that means anyone can get it and see the inner-workings of how it is put together, and even modify that if they see fit (note this is the source code of the rails framework we're talking about, not a custom developed application built on top of rails). It also means that there are thousands upon thousands of developers all across the world looking at how the Rails framework is built and contributing new features as well as updating existing ones.
This is in contrast to proprietary development frameworks where a corporation keeps the source code locked down under proprietary copyrights. In those circumstances a development team may need to make the application work in ways that the framework does not allow, or perhaps they've even found an error in the framework itself. With proprietary closed-source frameworks they are just out of luck, unless the corporate gate keeper decides to issue an update for everyone using the framework. However with Rails developers can just change the framework's source code to work how they need it to.
Supportability
Ruby on Rails is built to support industry best practices, with this it has the "application architecture" built in. This means that the Rails community as a whole has come together and said that 99% of web applications built in Rails should use the default structure, this makes it incredibly easy for a developer to get up to speed on an existing Rails project, because he/she will know exactly how everything should work, and where everything is located. This is a stark contrast to other frameworks or languages where it can sometimes take weeks or months for a new development team to understand the inner-workings of an existing application. Because all these best practices are built-in to every Rails application it means that you are not held hostage with the company that built your application, you could take your code to anyone that does Rails development and they should be able to get up to speed adding features and making updates in no time.
Scalability
Scalability referrers to how easily an application can handle an increase in traffic, increase in database size, and growth for the application to be spread out across multiple servers. Rails has proven it's scalability with some of the internet's largest sites built on Rails such as twitter.com, scribd.com, hulu.com, yellowpages.com. Additionally some pretty large and reputable organizations use Rails for both internal and external applications including: Amazon.com, BBC, Cisco, C-Net, Electronic Arts, IBM, JP Morgan, NASA, Oracle, Oakley, Siemens, Yahoo!, New York Times, Orbitz, Google, Turner Media and many others.
Hosting a Rails Application
Some may argue that a rail application is more expensive to host than an application developed in another language, and for some languages this is true for others it is not, the primary case in question here is a "shared" hosting environment vs. a "virtual private server" (VPS) or dedicated server.
For best performance a Rails application should almost always be hosted on its own VPS. With Rails whatever increased cost you may see with hosting will be offset exponentially by the increased development time. A software developer's hourly rate is almost always going to be much more expensive than even some of the most elaborate hosting environments. Thus it makes more sense to pay much less for an application built in Rails and pay a tiny bit more for hosting. In situations where 2 applications built with competitive development frameworks and are both hosted on a VPS, you're comparing apples to apples. If the size and power of the VPS is the same the only difference is the cost to develop each application.
Closing
Ultimately in software development a programming framework is just a tool that allows you to complete a task, the value of the tool lies in how much more efficient and flexible it makes you. With Rails as a foundation we can build a software and make it work in any way we want, thus we are completely in control, are not stuck working within the constructs of how someone else thought we should be working.
The real truth is that most programmers don't love programming (the act of actually writing out the code) what they enjoy is building things with their own two hands, and watching that grow, watching their work enrich the lives of their clients. Developers who use Rails are so passionate about it because it makes that building process so much faster and easier. If you found a carpenter who had a saw that would cut, sand, assemble, and stain wood for chairs, all on its own (because those are common tasks for chair building), I bet he'd be pretty excited about that saw too.