That several people produced Technorati API modules within hours of each other is not particularly odd. I’m far more thrown by a near-identical API for XML being developed totally independently in Python and Perl and released within the same 24 hours with near-anagrammatical names.
To be honest, it’s not the API itself that freaks me, because it’s a nice, common sense design that should really have appeared ages ago. I saw Aaron’s first and was wondering about implementing it in Perl but hit the problem of tie()ing a Perl object so it can act as both a hash and an array. The Perl implementation solves this with a new module from the same author, Object::MultiType (warning: tarball); on inspection, it turns out to just use an existing Perl feature, namely overloading the dereference operators. You learn something new every day.
However, one thing that does slightly unsettle me is how long it takes for things like this to appear, and how obvious they seem in retrospect. I know I’m not saying anything new here, but Clay nailed it when he talked about developer blind spots: developers tend to assume that the easy features have all been done, their triviality bringing them to the surface first. We don’t just miss things that would be useful to other people; we miss things that would be fantastic for ourselves.
Here’s another one I came across today: Tie::RemoteVar. Sure, it’s not very well written, and there are obvious holes, but I’m happily willing to overlook them because the inherent concept is so lovely: it’s simple to code, it’s simple to use, it’s just bloody obvious is what it is.
(Okay, random ivory-tower wittering over with. Let’s use Perl to print money instead.)