Ruby-watch in Oh-Eight
As is tradition at the end of the year, I made my own New Year's Resolutions - some were the usual (get fit, spend less time on the computer etc. etc.) but I set two goals specifically related to this one blog post - Firstly, as you've probably guessed, I promised myself that I'd blog on a more regular basis on my own plan and secondly I promised to both learn more programming stuff and to more actively participate in the community. In the vein of the last two, I know present with you a short list of some technologies I think you should keep an eye on in 2008.
You've probably already read it several times before - The downfall in Rails popularity is at hand. Whether it's Zed Shaw's spectacular rant (You've gotta give a blogger points when their site's name is "Zed's so ******* awesome") or even just a small shift of focus from the Rails stack to something based on Merb / DataMapper / jQuery (hint hint), You really need to put some time into taking a proper look at the alternatives.
Rack - It's got lobsters!
Rack is an ingenious little gem (pun intended) in the Ruby web development world, not too dissimilar from Python's WSGI, that opens up a whole heap of possibilities in tying your Ruby infrastructure together.
For a start, you have the ability to add middleware and the like to you're apps and to tie it all together in one need package and then you have a range of adapters ranging from thin (which I'll discuss in a minute) and Mongrel to other servers (e.g. WEBrick and FCGI) - all in one unified interface. In other words - true kick assery.
The ultimate proof of aforementioned kick assery? Look at the gem's source - It's got a freaking demo app with LOBSTERS. Check it out »
Thin - The lightweight alternative to Mongrel
Imagine this situation - two web servers sitting in a room. Ones called Mongrel, the others called Thin. Now imagine Mongrel as some AC-DC wannabe dude - sure he's fast and cool, but then you've got this totally bad ass Indie Rocker 'thin' next to him. When Kate Moss walks in, you know which god damned one she's gonna choose.
Bad indie rock jokes aside, Thin's a pretty cool piece of kit - It takes EventMachine for evented networking (more on that soon), Mongrel's admittedly kick ass Ragel-powered HTTP-parser and Rack to provide a lightweight yet easily interfacable web server for ruby applications. Hell, I bet even William Shatner shat his pants when he first saw the benchmarks. Check it out »
Merb - No, not the escort review board
Originally Mongrel + Erb, Merb is the play child of Ezra from EngineYard which evolved from a little, lightweight ruby web framework to a lightweight replacement for Rails. The whole development process is imho a lot nicer and the people contributing know their s***.
Seriously, in the last few months some of the jumps Merb's taken have provided true awesomeness. It's not longer a small odd-ball framework and instead of forcing you into one specific set of conventions like Rails does, Merb lets you choose your ORM, Testing framework and pretty much most other stuff (its small and clean code base is a dream to hack around on) whilst seamlessly tying it all into the base system.
If you want even more of a kick, I suggest checking out also checking out Hassox's port of Restful_authentication over to Merb - it shows how the Merb communities approach to testing and such extends to giving the choice to you. Check it out »
Ramaze - Another framework!
I haven't had much experience myself with Ramaze but I've good stuff - I suggest googling some of the good reviews. Oh, Did I mention it also uses Rack
If there is only one reason to check out the Ramaze site - that reason is the awesome list of Ruby web frameworks on the site. Seriously, go and check it out. Now. Check it out »
Kirk Haines (aka wyhaines) Work
wyhaines has been and is doing some awesome work - he wrote an add on of sorts to mongrel which add's EventMachine support - in other words, performance gains pretty much free. Oh, Did I mention he wrote Iowa - a pretty kick ass framework that's done heaps of stuff other frameworks are only now starting to work on.
The one thing I'm really looking forward to is Wisteria - Sure, we haven't heard much (the page on the Swiftcore site has a brief summary) but it sounds like its going to totally kick ass. Check it out »
DataMapper - It's bitchin'
Just a quick one here - DataMapper is a very small, newish and pretty damned kick ass ORM. The process is very open like Merb's which is awesome and #datamapper on Freenode is rockin'. There are a lot of smart people working on making datamapper even better and there is also quite a bit of overlap between the datamapper and merb communities - something which has led to some great integration of datamapper into merb via the merb_datamapper gem. Check it out »
Ruby 1.9 - Yarrrrrrrvvvv!
1.9 is the long-awaited update of Ruby with heaps of changes - first off, the integration of YARV means that 1.9 is on it's way to be very fast and when you consider the shift towards Event-based networking and such, there's a nice future for ruby developers speed wise (faster HTTP servers, faster applications and in general, a faster experience). The best part of it is that there is currently a developers release - meaning you can get right in and start playing around with your code - making it even faster. The only let down at the moment? There are many libraries which haven't been ported. Such is life. Check it out »
Rubinius - it's totally bitching
As the last item on the list, Rubinius also has the privilege of being the coolest. An entirely-new interpreter for Ruby, it's interesting in that most of language and it's standard lib are build in Ruby - there has been a focus on writing it in Ruby as much as is possible. Taking queues from the VM's for languages like Smalltalk, It also has other advantages such as the open community ala Merb and DataMapper as well as funding from EngineYard - who've hired developers to work on it. Check it out »
All in all, I think that 2008 is going to be an awesome year. Even if it is full of Ruby bashers ;)