Technically:
- Get a Linux server running with Ruby on Rails and PostgreSQL.
- Write a RoR program on my Windows environment (I don’t plan on moving away from Windows OS, or even Visual Studio for that matter - I am comfortable there).
- Deploy the application to the Linux environment.
Business Wise
- I am frustrated with the lack of virtualization and mass scalability options for the Windows platform. (hence the Linux: I would love to deploy on Amazon EC2!)
- I am frustrated with the amount of development time it takes to change and deploy seemingly simple applications. (hence the Ruby)
- We have an Enterprise class SQL Server 2005 environment, super fast, great. But its expensive. (Hence the PostgreSQL is it really “the worlds most advanced open source database”?)
This all brings me full circle back to my development roots. My first two years in college as a CS major had me spending late nights in the computer lab, downloading Slackware linux onto floppy disks so I could install it on my 386. My professional career brought me to Perl and Unix first, then Microsoft land. I achieved much with Microsoft tools, I will always feel I owe Bill Gates and company at least something for the wonderful career their development tools allowed me to put together. However, things are changing and I can feel it. C# guys like me are starting to play around with Ruby. Start ups are running all of their hosting on grid services like EC2. If I want to stay ahead of the trends and continue to master and learn the art of high-performance web application development and operation, I need to at least try this stuff.
I know these complicated application stacks that Linux server engender are anathema to most .NET developers. Who wants to deal with 16 different choices when all we want to do is deploy good applications? This is why I like Ruby. It is a single stack, standard, and best practices platform all rolled up into one, much like .NET. I would never even test this route if there were only J2EE as an option. I loathe J2EE. Try being a consultant and figuring out other people’s messes that they’ve written in J2EE — tomcat or bea or websphere or this or that? Struts? Velocity templates? What a pain in the arse.
So back to Ruby. I know Ruby (on Rails) might not be the bees knees, its not as mature as other platforms, Mac users love it (sorry guys and gals), and people are just starting to exploit its true potential. But it is a clear, single-source, well supported platform - a true competitor to .NET.
The best is the enemy of the good. — Voltaire
To this end, I’ve found some great blog posts and articles around the web. As I go through each step, I’ll mark the best of the best here:
For the “Get A Linux Server Running” bit, see my previous article.
For the Ruby on Rails bit, this article is indispensible: http://www.urbanpuddle.com/articles/2006/12/07/install-ruby-rails-on-ubuntu-edgy-eft
Thanks Vince!