Functional Form

Avoiding side-effects since 2004.

Saturday, September 16, 2006

With duck typing, you only find Geese at runtime.

Friday, September 15, 2006


There's a chance that I'll be writing a whole lot of Ruby in the near future. On Rails, as it were.

Kinda funny, since I just started to really like Java. Reading Howard Lewis Ship's blog has been especially inspiring. After reading back a few posts, I like the way he writes, thinks, and his personality. And he highlights what I like about Java. It's mature, as are so many of its developers. Gavin King is another hero of mine, especially after reading Hibernate in Action, which was so articulate and intellectual in its tone. There's a lot about Java that isn't fun, slick, or cool. But there's one word that seems fitting: robust. There's so much quality code out there, so many quality frameworks. Take a look at JiBX, or Hibernate, or the multiple inversion of control containers like Spring and HiveMind. Jakarta, CodeHaus. This software delivers real functionality, quietly. There's so much I haven't gotten good at yet... Aspect Oriented Programming, annotations, really shopping around for an IoC container I like, byte-code manipulation. Hell, I haven't even really pushed Hibernate to the limit.

The Rubinistas... they seem a bit excitable. I haven't had enough exposure to really say, but a lot of the libraries seem to be kind of crappy. There seems to be this ethic of corner cutting or something. Of waving the hands over a demo and exclaiming "look how simple". This is a good post by Tim Bray on the subject. Funny quote: "So, am I a boring old factory factory factory fart wanting to inflict unnecessary pain and failing to recognize the obvious 80/20 point here? Or will the pleasant buzz you get today from mapping markup into code maybe give you a nasty hangover tomorrow? Is it Truth vs. Beauty? Is it Life vs. Art? Is it Alien vs. Predator? Oh, the anguish." I'm sick of the 80-20 rule because in my experience, I need 100 percent. Convention over configuration... I don't think I buy into it. You can't pee into a Mr. Coffee and expect Taster's Choice. I want concise as much as the next guy, but not if I have to sacrifice correct.

I guess the thing that bugs me about the touters of Ruby I've encountered is that they are so impressed with themselves. I don't exactly know how to explain it. Like Ruby was the first language to invent closures or something. And I guess when Ruby is your second programming language and your first was PHP, or when the Java you've written is for some corporation that bought into software-by-commitee standards like EJBs, Ruby and its train tracks seem like the greatest thing in the long history of Ever.

With that off my chest, if Ruby it's going to be then Ruby it will be. Maybe in a year I'll be drinking the red Kool-Aid, too. One thing's for sure, I can't wait to find the first cool way to use Module#define_method.