March 9th, 2005

device

[PROGRAMMING] Revocable locks

For hardcore programmers (and my own reference) only: Microsoft Research continues to occasionally remind me that they are the one really worthwhile part of the Borg. Very interesting article here, describing a concept of "revocable locks" as a relatively efficient way of providing non-blocking multi-threaded programming, especially for library-level methods where speed is critical. It also provides some useful insights into current research into multi-threading, for those of us who are 20 years out of school and not so hip to the techniques that are coming down the road...
device

Economics seem to indicate that DB programming is a good place to be

So just for the reference of my programmer friends: current evidence indicates that serious database programmers are in short supply. We've spent something like three months trying to find someone who has both solid modern programming chops and a deep understanding of SQL. There are lots of generic programmers out there, and I think a pretty good number of basic DBAs, but it looks like Real Programmers in this space (especially ones at the middling experience level) are thin on the ground.

So if you're looking for a productive specialty, this looks like a possibility...
device

[PROGRAMMING] More Hardcore Geekery

And an even more interesting article out of MSR, discussing the topic of composable memory transactions as a way to make multi-threaded programming actually scale properly in complex systems without it all breaking down. This one's really neat, although a lot of the core ideas work as well as they do because they're working in Haskell -- carrying the whole thing back to a more conventional language wouldn't be easy.

Still, it's fodder for my long-standing suspicion that declarative languages will eventually win out over imperative ones, because you can just program better in them. In particular, if Haskell keeps turning out to be more scalable in a multi-threaded environment than the C family, sooner or later that's going to overwhelm the usual speed arguments...