Building simplicidade.org: notes, projects, and occasional rants

Ruby and Perl

I’ve been learning Ruby for the last couple of weeks. I bought the book some time ago, and I’ve been reading and rereading it several sections.

Ruby is a very very good language. Blocks are one of the most productive features I ever used in a programming language.

Yet, I use Perl everyday. I’m a Perl user since 4.something patch level 35 or 36, and I really like perl5. Also, at work, I need Perl and POE to build XMPP components. It’s a very productive setup. Also, after more than 10 years in Perl-land, you get to know the language, the modules and the community very well, and that helps.

But I can’t stop thinking that Ruby would be useful in a lot of situations at work. Right now, I think there are 4 or 5 people there looking at Ruby, but all with a “Wouldn’t it be great to use this?” type of thinking, and no “Let’s use this right now”. I understand exactly why we think like that, it’s a very big company, a long-lived project, with a lot of legacy, and frankly, the right project for Ruby doesn’t seem to have emerged yet.

I’ve been looking for XMPP stuff in Ruby. There is Jabber4R which is very good to do a bot in a hurry, but I lack a event-driven framework like POE in Ruby so that I can write my external components.

So I’ll keep using it for small things, to keep the language alive in my brain. I’ll try to figure out how to achieve critical mass around me to start using it in a big way.

Of course, I must also think about perl6. But I’ll confess: for a long time perl5 programmer like me, perl6 is more scarier than Ruby. It seems (I haven’t read that much about it, I just keep up with the Mailing list summaries) very powerful, but I think that the language is getting more cryptic. I don’t know if that’s a language feature, or the current perl6 guru’s showing off the power and expressiveness of the language. Anyway, for me, it’s scary. I’ve been fighting the last 4 or 5 years to write and teach other people to write good maintainable perl5 code, and I haven’t seen examples of maintainable code in perl6.

This year I’ll be attending YAPC::EU and probably YAPC::NA later this month. And my main goal is to see what perl6 is all about, and if it is as scary as it seems.