General
Rapid development in Rails
We're pitching to an existing client at the moment to develop a website for a new venture he's starting and so I got handed a draft proposal to check over. As it's not a high-value project, the idea put forward was to use existing shopping cart software we have a developer licence for and pull out the payment side which wasn't wanted by the client (it's just to generate enquiries which they'll then deal with personally). It seemed to me that it was going to involve a fair bit of re-working of this PHP software in order to get it working the way the client needed and that it might be easier to develop a system from scratch in Rails as the site doesn't actually need to be very complicated. To get an idea, I went about quickly creating a basic database structure to model the site and then ran a bunch of Rails scaffold generators. After linking the models together and some mild tweaking of links and data display, I had the basics of the site working (and I do mean the basics - no style or more advanced features like search) and I'd spent under an hour doing it. We can now offer the client a solution entirely tailored to their needs on the (reasonably) safe assumption that the coding isn't going to involve more time than the client can afford to pay for. If the client does go for the Rails-based custom site, I believe both 'sides' win. The client gets a truly bespoke system that's tailored to their needs and their needs only, while we should be able to do that within the budget specified and provide a more maintainable, extensible system so it's easier for us to support. As much as I love PHP and have written my own frameworks for more complex systems over the past 6 years coding PHP, there's nothing to match Rails for super-fast prototyping and then quick development after that, aided in no small part by the way Ruby itself works. The only things in Rails that immediately spring to mind as being a bit more hassle than I've handled in my own PHP apps are form handling and theme/template switching, though there's no great difficulty in adding these to a Rails app. I've already done a basic theme switcher for the first app I wrote while working through the Agile Web Development with Rails book, a forum. I still need to really sit down and learn more of Ruby's intricacies, but the Ruby on Rails combo is already proving great for quickly developing all kinds of web apps, from simple websites with a little bit of dynamic content to full content management systems (what I'm working on in my spare time).