I’ve just been browsing through a sheaf of C#-related job postings (not because I’m thinking of changing my job, but because I like to find out how much other people doing roughly the same sorts of things as me are getting paid…). There were, as usual, some quite remunerative positions in there - but reading through the job descriptions, I found myself thinking over and over, I don’t really want to do that.
I don’t really like working inside the Microsoft world. Mostly it’s OK, but every now and again you run up against a brick wall of the must utterly confounding solidity and opacity, and there’s nothing you can do about it because you can’t get at the fricken source to find out what the problem is. Every time this happens to me, I gain a brief flash of insight into the furious sense of wrongness that motivated Richard Stallman to start the GNU project and to write the GPL. And then it fades, and I hack around whatever the problem was, and forget until the next time. But there is, always, a next time.
I did some work with Twisted a while back, and found myself dipping into the source on a regular basis to figure out how it worked. If you can, the chances are that sooner or later you will, and you can learn a lot by doing it. I already understand Twisted better than I will ever understand IIS.
I don’t really like writing closed-source software. Partly this is because I feel bad about perpetuating an already existing bad situation, in which a bogus model of intellectual property
is used to prop up various obsolete and counter-productive ways of doing business (vendor lock-in, et al). But it’s really more to do with vanity. I want to share my code, the same way I share my music and my poetry, not out of altruism but out of pride in what I’ve done and curiosity about what other people will think of it.
What I’d like, of course, is to hack Haskell on an open source project of stupendous coolness. But that is what hobbies are for…