I don’t like hype. I’m inherently distrusting whenever I look at information about the latest hot new software development framework and see claims like “Zyzzx will reduce your development time by 90%” Uh-huh – and it will write and debug the code for me too, and make my coffee, right? So recently I was talking with some friends of mine about a project that I had in mind – strictly pipe-dream level stuff, not something I had time for – and one of them started espousing the virtues of some new framework called Rails, built on a language called Ruby.
I’d heard of Ruby before (though never looked at it) and some of the things that he described were intriguing. So when a web project came up – a realistic one that really did need doing – I thought I’d give Rails a look-see. So I went and started looking for information about it. “Uh-oh,” I thought – on the Rails main page, I was greeted with the quote “Powerful web applications that formerly might have taken weeks or months to develop can be produced in a matter of days.” (Never mind that the quote is from Tim O’Reilly, founder of the line of programming books that bears his name – someone I would generally trust to know his stuff.) I was immediately dubious. Never mind that I hadn’t done any web development at all since JavaScript was the hot new language on the block and DHTML and CSS were the big buzzwords. But Ruby and Rails have stood up to their promises. I quite like the Ruby language – it’s addressed many of the complaints that I’ve had with C++. (I still require C++’s performance in much of what I do, though.) And within two days I had a working prototype of my application – it was clumsy but implemented all the main functionality required – and in two weeks I had something actually up and running on their web page, usable and with the full initial featureset. I had to make use of AJAX for dynamic pages (something that didn’t even exist last time I’d had reason to care); it was trivially easy to do. So if you’re looking to do new web development, especially if it’s going to have a database backend, I’d enthusiastically point you towards Rails.