My programming days pretty much ended in the early 90s. At that point, I had some experience with Pascal and was playing around in C, but the dawn of the graphical user interface and my unwillingness to take the time to decipher the intricacies of the component object model snuffed what was left of my wannabe programmer past-life.
Since then, I’ve done some cut-n-paste coding and made fits and starts at learning some Perl, PHP and Java, but reality has always intervened, and whatever progress I’d make would be overrun by the life that pays the bills and spends time with my family.
But recently I discovered Ruby on Rails.
About the same time I was giving up on programming, Yukihiro “Matz” Matsumoto was creating Ruby, an object-oriented language Matsumoto hoped would focus on the needs of humans–the programmers–rather than the needs of machines. The idea is that Ruby shouldn’t surprise the programmer with its behavior.
The mature language is supported by a number of easy-to-use tools, including Gems, which lets Ruby developers quickly update their Ruby installations and integrate add-ons with simple text-based commands. And then there’s Rails.
Rails is a Ruby-based Web development framework that seems tailor-built for productivity–at least for my productivity. With Rails, the emphasis is on convention. A Rails app is largely preconfigured–as long as you stick to the required directory structure and file-naming conventions, it handles a lot of the behind-the-scenes tedium for you.
For instance, building a web-fronted database app in Rails takes about ten minutes–tops. Rails automatically generates the interfaces necessary for adding, editing, viewing and deleting database entries. The default interfaces aren’t pretty, but they work. And you can quickly customize things to suit your exact needs.
In about an hour, I put together a basic database-driven app for a project I’m tracking, and I have plans for more Rails development in the future. The nice thing is, with Rails I don’t have to suck a lot of time from other parts of my life to get things rolling. I’m just hanging my own ideas off the pre-built framework.
I’m not the only one who’s been bitten by the Ruby on Rails bug. I was able to find dozens of commercial sites that involve Rails (some are listed on the Ruby on Rails site.) And Ruby and Rails book sales are apparently going through the roof.
I’ve even created a complete development environment that runs off a 2GB USB thumb drive and includes my code editor, MySQL database, Ruby, Rails, Apache server and more. Portable productivity! (Keep in mind, it’s not necessarily the speediest option–just the most convenient for me. Installing Eclipse on the drive–for example–can take more than an hour because of a USB drive’s stodgy performance compared with a hard drive. But it runs fine once installed.)
Here’s a list of the resources I’m using in my projects. Everything fits on a 2GB USB drive and leaves a few hundred MB left over for projects, your favorite code-along-to-the-oldies MP3s or whatever.
Ruby on Rails tools.
RadRails IDE plugin for Eclipse.
Ruby development tools plugin for Eclipse.
The Eclipse development environment.
XAMPP: Portable, lightweight implementation of Apache, MySQL, FTP and more in one install.
WinSCP FTP and SCP client.
PuTTY SSH and Telnet tool.
Rolling with Ruby on Rails: A fantastic tutorial on Rails, including how to get it installed.
Really Getting Started in Rails: A great companion to the Rolling piece. Goes into more details and provides explanations aimed at less technical users.
Top 12 Rails Tutorials: List and descriptions of various Rails education sites, including the two listed above.
Agile Web Development with Rails: Super book that walks you through everything from building basic applications in Rails to performance tuning for scalability.