Ruby, Ruby, Ruby, Ruby!
Over the last two or three weeks, I've been learning Ruby. For no other reason than to have another string on my bow. Heard that bows are better that way.
Often, the best way to learn is to teach, so I've put on a couple of "lunch-n-learn" sessions at work to share my newfound knowledge (and to make sure that everyone else does things my way, of course).
In addition, it seemed like time to complete one of the great many projects that has been "on the back burner" for several months. So, in the tradition established by many great, and not-so-great, programmers... I chucked out the entire code base and started from scratch with a new platform.
The result is "Furnace". The project is viewable on GitHub. It's a Ruby application using Sinatra as a web framework, and its purpose in life is to be an "information radiator". That is, a large, visible, readable display of what's going on right now in a development team.
Furnace in action:
Though I only have very limited experience with Ruby, I love it. Matz is said to have designed the language for "developer happiness", this is evident as soon as you start typing in your first .rb file. Getting from zero to application is blazingly fast in Ruby, it just feels... well, simple.
The idea of developer happiness shows through not only the language, but also the ecosystem that has grown around Ruby. My particular favorite is Bundler, a language specific dependency mananager (kind of like a package manager, if that's more familiar to you). Other frameworks do have similar systems... Python's eggs, or .NET's NuGet, but I haven't seen one that operates as smoothly as Bundler.
I'm not sure, however, if I could permanently leave my static typing behind. Static typing gives a solidness to development tools that has never been matched by the dynamic tools environment. Intellisense, for example, is invaluable when working with larger projects. So, for now at least, I'm keeping one foot in the old world of static languages.