Why are Ruby and cloud computing a good match? Basically: why Ruby?:
Why are cloud computing and Ruby on Rails a good match? Let's hear what Hampton Catlin, author of HAML and Wikipedia's head Ruby/mobile architect has to say!Hampton Catlin: Ruby is slightly more computationally expensive than other languages, and having easy resource expansion available can cure a lot of the "What if we get on the NYT?" scares of business people. If PHP is 10% faster, that no longer matters when you can scale at that rate. If you were on one server, perhaps you could argue that 10% increase in capacity would be important.
HC:Rails is a particularly good match for cloud computing because of its share-nothing architecture. You can toss off new instances of an application and it will just being to run. It has less to do with Ruby itself, but more to do with smart architectural decisions. I mean, of course Ruby is known as having a high developer productivity rate and that's always good for business. And the cloud helps most business concerns about scaling.
Are there certain applications you think run better in Ruby?:
HC:I would say that 99% of web applications are a good fit for Rails. At Wikipedia Mobile, we are using Merb, because it's one of the few instances where that 2% speed increase might matter. The possible traffic numbers are ridiculously high, so we had to hedge our bets. And I did other things like choose not to use a traditional local database. The application is purely run on Passenger instances. Makes scaling very, very easy. At this point, we are handling about 120,000 hits a day and currently have no caching enabled. At that traffic level, our server has stayed at about 1% load. I'm extremely proud of that fact.
What support is provided for code migration when there are major updates?:
HC:Mostly it's keeping up with the latest features and remembering what your application does. Of course, many people focus on TDD to help with those kinds of transitions, but I mostly just read through the code looking for changes. It works pretty well. Just the other day, I upgraded a pre-Rails 1.0 app to Rails 2.3 and it was rather painless. I just read through the code and upgraded when I saw something. Most of the core stuff hasn't changed that much. I mean, has_many still means has_many. Mostly its new APIs that would have made the code easier to write initially.